home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / mozilla-firefox / include / websrvcs / nsISchema.h < prev    next >
C/C++ Source or Header  |  2006-05-08  |  80KB  |  2,309 lines

  1. /*
  2.  * DO NOT EDIT.  THIS FILE IS GENERATED FROM nsISchema.idl
  3.  */
  4.  
  5. #ifndef __gen_nsISchema_h__
  6. #define __gen_nsISchema_h__
  7.  
  8.  
  9. #ifndef __gen_nsISupports_h__
  10. #include "nsISupports.h"
  11. #endif
  12.  
  13. #ifndef __gen_nsIWebServiceErrorHandler_h__
  14. #include "nsIWebServiceErrorHandler.h"
  15. #endif
  16.  
  17. /* For IDL files that don't want to include root IDL files. */
  18. #ifndef NS_NO_VTABLE
  19. #define NS_NO_VTABLE
  20. #endif
  21. class nsISchema; /* forward declaration */
  22.  
  23. class nsISchemaType; /* forward declaration */
  24.  
  25. class nsISchemaSimpleType; /* forward declaration */
  26.  
  27. class nsISchemaBuiltinType; /* forward declaration */
  28.  
  29. class nsISchemaListType; /* forward declaration */
  30.  
  31. class nsISchemaUnionType; /* forward declaration */
  32.  
  33. class nsISchemaRestrictionType; /* forward declaration */
  34.  
  35. class nsISchemaComplexType; /* forward declaration */
  36.  
  37. class nsISchemaParticle; /* forward declaration */
  38.  
  39. class nsISchemaModelGroup; /* forward declaration */
  40.  
  41. class nsISchemaAnyParticle; /* forward declaration */
  42.  
  43. class nsISchemaElement; /* forward declaration */
  44.  
  45. class nsISchemaAttributeComponent; /* forward declaration */
  46.  
  47. class nsISchemaAttribute; /* forward declaration */
  48.  
  49. class nsISchemaAttributeGroup; /* forward declaration */
  50.  
  51. class nsISchemaAnyAttribute; /* forward declaration */
  52.  
  53. class nsISchemaFacet; /* forward declaration */
  54.  
  55.  
  56. /* starting interface:    nsISchemaCollection */
  57. #define NS_ISCHEMACOLLECTION_IID_STR "427c5511-941b-48c0-9abc-8ec9ea5d964b"
  58.  
  59. #define NS_ISCHEMACOLLECTION_IID \
  60.   {0x427c5511, 0x941b, 0x48c0, \
  61.     { 0x9a, 0xbc, 0x8e, 0xc9, 0xea, 0x5d, 0x96, 0x4b }}
  62.  
  63. /**
  64.  * The collection of loaded schemas. If a schema references other 
  65.  * schemas (generally through an import), these will be included
  66.  * in the corresponding collection. 
  67.  */
  68. class NS_NO_VTABLE nsISchemaCollection : public nsISupports {
  69.  public: 
  70.  
  71.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMACOLLECTION_IID)
  72.  
  73.   /* nsISchema getSchema (in AString targetNamespace); */
  74.   NS_IMETHOD GetSchema(const nsAString & targetNamespace, nsISchema **_retval) = 0;
  75.  
  76.   /* nsISchemaElement getElement (in AString name, in AString aNamespace); */
  77.   NS_IMETHOD GetElement(const nsAString & name, const nsAString & aNamespace, nsISchemaElement **_retval) = 0;
  78.  
  79.   /* nsISchemaAttribute getAttribute (in AString name, in AString aNamespace); */
  80.   NS_IMETHOD GetAttribute(const nsAString & name, const nsAString & aNamespace, nsISchemaAttribute **_retval) = 0;
  81.  
  82.   /* nsISchemaType getType (in AString name, in AString aNamespace); */
  83.   NS_IMETHOD GetType(const nsAString & name, const nsAString & aNamespace, nsISchemaType **_retval) = 0;
  84.  
  85. };
  86.  
  87. /* Use this macro when declaring classes that implement this interface. */
  88. #define NS_DECL_NSISCHEMACOLLECTION \
  89.   NS_IMETHOD GetSchema(const nsAString & targetNamespace, nsISchema **_retval); \
  90.   NS_IMETHOD GetElement(const nsAString & name, const nsAString & aNamespace, nsISchemaElement **_retval); \
  91.   NS_IMETHOD GetAttribute(const nsAString & name, const nsAString & aNamespace, nsISchemaAttribute **_retval); \
  92.   NS_IMETHOD GetType(const nsAString & name, const nsAString & aNamespace, nsISchemaType **_retval); 
  93.  
  94. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  95. #define NS_FORWARD_NSISCHEMACOLLECTION(_to) \
  96.   NS_IMETHOD GetSchema(const nsAString & targetNamespace, nsISchema **_retval) { return _to GetSchema(targetNamespace, _retval); } \
  97.   NS_IMETHOD GetElement(const nsAString & name, const nsAString & aNamespace, nsISchemaElement **_retval) { return _to GetElement(name, aNamespace, _retval); } \
  98.   NS_IMETHOD GetAttribute(const nsAString & name, const nsAString & aNamespace, nsISchemaAttribute **_retval) { return _to GetAttribute(name, aNamespace, _retval); } \
  99.   NS_IMETHOD GetType(const nsAString & name, const nsAString & aNamespace, nsISchemaType **_retval) { return _to GetType(name, aNamespace, _retval); } 
  100.  
  101. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  102. #define NS_FORWARD_SAFE_NSISCHEMACOLLECTION(_to) \
  103.   NS_IMETHOD GetSchema(const nsAString & targetNamespace, nsISchema **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSchema(targetNamespace, _retval); } \
  104.   NS_IMETHOD GetElement(const nsAString & name, const nsAString & aNamespace, nsISchemaElement **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElement(name, aNamespace, _retval); } \
  105.   NS_IMETHOD GetAttribute(const nsAString & name, const nsAString & aNamespace, nsISchemaAttribute **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttribute(name, aNamespace, _retval); } \
  106.   NS_IMETHOD GetType(const nsAString & name, const nsAString & aNamespace, nsISchemaType **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(name, aNamespace, _retval); } 
  107.  
  108. #if 0
  109. /* Use the code below as a template for the implementation class for this interface. */
  110.  
  111. /* Header file */
  112. class nsSchemaCollection : public nsISchemaCollection
  113. {
  114. public:
  115.   NS_DECL_ISUPPORTS
  116.   NS_DECL_NSISCHEMACOLLECTION
  117.  
  118.   nsSchemaCollection();
  119.  
  120. private:
  121.   ~nsSchemaCollection();
  122.  
  123. protected:
  124.   /* additional members */
  125. };
  126.  
  127. /* Implementation file */
  128. NS_IMPL_ISUPPORTS1(nsSchemaCollection, nsISchemaCollection)
  129.  
  130. nsSchemaCollection::nsSchemaCollection()
  131. {
  132.   /* member initializers and constructor code */
  133. }
  134.  
  135. nsSchemaCollection::~nsSchemaCollection()
  136. {
  137.   /* destructor code */
  138. }
  139.  
  140. /* nsISchema getSchema (in AString targetNamespace); */
  141. NS_IMETHODIMP nsSchemaCollection::GetSchema(const nsAString & targetNamespace, nsISchema **_retval)
  142. {
  143.     return NS_ERROR_NOT_IMPLEMENTED;
  144. }
  145.  
  146. /* nsISchemaElement getElement (in AString name, in AString aNamespace); */
  147. NS_IMETHODIMP nsSchemaCollection::GetElement(const nsAString & name, const nsAString & aNamespace, nsISchemaElement **_retval)
  148. {
  149.     return NS_ERROR_NOT_IMPLEMENTED;
  150. }
  151.  
  152. /* nsISchemaAttribute getAttribute (in AString name, in AString aNamespace); */
  153. NS_IMETHODIMP nsSchemaCollection::GetAttribute(const nsAString & name, const nsAString & aNamespace, nsISchemaAttribute **_retval)
  154. {
  155.     return NS_ERROR_NOT_IMPLEMENTED;
  156. }
  157.  
  158. /* nsISchemaType getType (in AString name, in AString aNamespace); */
  159. NS_IMETHODIMP nsSchemaCollection::GetType(const nsAString & name, const nsAString & aNamespace, nsISchemaType **_retval)
  160. {
  161.     return NS_ERROR_NOT_IMPLEMENTED;
  162. }
  163.  
  164. /* End of implementation class template. */
  165. #endif
  166.  
  167.  
  168. /* starting interface:    nsISchemaComponent */
  169. #define NS_ISCHEMACOMPONENT_IID_STR "5caaa64e-e191-11d8-842a-000393b6661a"
  170.  
  171. #define NS_ISCHEMACOMPONENT_IID \
  172.   {0x5caaa64e, 0xe191, 0x11d8, \
  173.     { 0x84, 0x2a, 0x00, 0x03, 0x93, 0xb6, 0x66, 0x1a }}
  174.  
  175. class NS_NO_VTABLE nsISchemaComponent : public nsISupports {
  176.  public: 
  177.  
  178.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMACOMPONENT_IID)
  179.  
  180.   /* readonly attribute AString targetNamespace; */
  181.   NS_IMETHOD GetTargetNamespace(nsAString & aTargetNamespace) = 0;
  182.  
  183.   /* void resolve (in nsIWebServiceErrorHandler aErrorHandler); */
  184.   NS_IMETHOD Resolve(nsIWebServiceErrorHandler *aErrorHandler) = 0;
  185.  
  186.   /* void clear (); */
  187.   NS_IMETHOD Clear(void) = 0;
  188.  
  189. };
  190.  
  191. /* Use this macro when declaring classes that implement this interface. */
  192. #define NS_DECL_NSISCHEMACOMPONENT \
  193.   NS_IMETHOD GetTargetNamespace(nsAString & aTargetNamespace); \
  194.   NS_IMETHOD Resolve(nsIWebServiceErrorHandler *aErrorHandler); \
  195.   NS_IMETHOD Clear(void); 
  196.  
  197. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  198. #define NS_FORWARD_NSISCHEMACOMPONENT(_to) \
  199.   NS_IMETHOD GetTargetNamespace(nsAString & aTargetNamespace) { return _to GetTargetNamespace(aTargetNamespace); } \
  200.   NS_IMETHOD Resolve(nsIWebServiceErrorHandler *aErrorHandler) { return _to Resolve(aErrorHandler); } \
  201.   NS_IMETHOD Clear(void) { return _to Clear(); } 
  202.  
  203. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  204. #define NS_FORWARD_SAFE_NSISCHEMACOMPONENT(_to) \
  205.   NS_IMETHOD GetTargetNamespace(nsAString & aTargetNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTargetNamespace(aTargetNamespace); } \
  206.   NS_IMETHOD Resolve(nsIWebServiceErrorHandler *aErrorHandler) { return !_to ? NS_ERROR_NULL_POINTER : _to->Resolve(aErrorHandler); } \
  207.   NS_IMETHOD Clear(void) { return !_to ? NS_ERROR_NULL_POINTER : _to->Clear(); } 
  208.  
  209. #if 0
  210. /* Use the code below as a template for the implementation class for this interface. */
  211.  
  212. /* Header file */
  213. class nsSchemaComponent : public nsISchemaComponent
  214. {
  215. public:
  216.   NS_DECL_ISUPPORTS
  217.   NS_DECL_NSISCHEMACOMPONENT
  218.  
  219.   nsSchemaComponent();
  220.  
  221. private:
  222.   ~nsSchemaComponent();
  223.  
  224. protected:
  225.   /* additional members */
  226. };
  227.  
  228. /* Implementation file */
  229. NS_IMPL_ISUPPORTS1(nsSchemaComponent, nsISchemaComponent)
  230.  
  231. nsSchemaComponent::nsSchemaComponent()
  232. {
  233.   /* member initializers and constructor code */
  234. }
  235.  
  236. nsSchemaComponent::~nsSchemaComponent()
  237. {
  238.   /* destructor code */
  239. }
  240.  
  241. /* readonly attribute AString targetNamespace; */
  242. NS_IMETHODIMP nsSchemaComponent::GetTargetNamespace(nsAString & aTargetNamespace)
  243. {
  244.     return NS_ERROR_NOT_IMPLEMENTED;
  245. }
  246.  
  247. /* void resolve (in nsIWebServiceErrorHandler aErrorHandler); */
  248. NS_IMETHODIMP nsSchemaComponent::Resolve(nsIWebServiceErrorHandler *aErrorHandler)
  249. {
  250.     return NS_ERROR_NOT_IMPLEMENTED;
  251. }
  252.  
  253. /* void clear (); */
  254. NS_IMETHODIMP nsSchemaComponent::Clear()
  255. {
  256.     return NS_ERROR_NOT_IMPLEMENTED;
  257. }
  258.  
  259. /* End of implementation class template. */
  260. #endif
  261.  
  262.  
  263. /* starting interface:    nsISchema */
  264. #define NS_ISCHEMA_IID_STR "3c14a021-6f4e-11d5-9b46-000064657374"
  265.  
  266. #define NS_ISCHEMA_IID \
  267.   {0x3c14a021, 0x6f4e, 0x11d5, \
  268.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  269.  
  270. class NS_NO_VTABLE nsISchema : public nsISchemaComponent {
  271.  public: 
  272.  
  273.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMA_IID)
  274.  
  275.   /* readonly attribute AString schemaNamespace; */
  276.   NS_IMETHOD GetSchemaNamespace(nsAString & aSchemaNamespace) = 0;
  277.  
  278.   /* readonly attribute PRUint32 typeCount; */
  279.   NS_IMETHOD GetTypeCount(PRUint32 *aTypeCount) = 0;
  280.  
  281.   /* nsISchemaType getTypeByIndex (in PRUint32 index); */
  282.   NS_IMETHOD GetTypeByIndex(PRUint32 index, nsISchemaType **_retval) = 0;
  283.  
  284.   /* nsISchemaType getTypeByName (in AString name); */
  285.   NS_IMETHOD GetTypeByName(const nsAString & name, nsISchemaType **_retval) = 0;
  286.  
  287.   /* readonly attribute PRUint32 attributeCount; */
  288.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) = 0;
  289.  
  290.   /* nsISchemaAttribute getAttributeByIndex (in PRUint32 index); */
  291.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttribute **_retval) = 0;
  292.  
  293.   /* nsISchemaAttribute getAttributeByName (in AString name); */
  294.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttribute **_retval) = 0;
  295.  
  296.   /* readonly attribute PRUint32 elementCount; */
  297.   NS_IMETHOD GetElementCount(PRUint32 *aElementCount) = 0;
  298.  
  299.   /* nsISchemaElement getElementByIndex (in PRUint32 index); */
  300.   NS_IMETHOD GetElementByIndex(PRUint32 index, nsISchemaElement **_retval) = 0;
  301.  
  302.   /* nsISchemaElement getElementByName (in AString name); */
  303.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) = 0;
  304.  
  305.   /* readonly attribute PRUint32 attributeGroupCount; */
  306.   NS_IMETHOD GetAttributeGroupCount(PRUint32 *aAttributeGroupCount) = 0;
  307.  
  308.   /* nsISchemaAttributeGroup getAttributeGroupByIndex (in PRUint32 index); */
  309.   NS_IMETHOD GetAttributeGroupByIndex(PRUint32 index, nsISchemaAttributeGroup **_retval) = 0;
  310.  
  311.   /* nsISchemaAttributeGroup getAttributeGroupByName (in AString name); */
  312.   NS_IMETHOD GetAttributeGroupByName(const nsAString & name, nsISchemaAttributeGroup **_retval) = 0;
  313.  
  314.   /* readonly attribute PRUint32 modelGroupCount; */
  315.   NS_IMETHOD GetModelGroupCount(PRUint32 *aModelGroupCount) = 0;
  316.  
  317.   /* nsISchemaModelGroup getModelGroupByIndex (in PRUint32 index); */
  318.   NS_IMETHOD GetModelGroupByIndex(PRUint32 index, nsISchemaModelGroup **_retval) = 0;
  319.  
  320.   /* nsISchemaModelGroup getModelGroupByName (in AString name); */
  321.   NS_IMETHOD GetModelGroupByName(const nsAString & name, nsISchemaModelGroup **_retval) = 0;
  322.  
  323.   /* readonly attribute nsISchemaCollection collection; */
  324.   NS_IMETHOD GetCollection(nsISchemaCollection * *aCollection) = 0;
  325.  
  326. };
  327.  
  328. /* Use this macro when declaring classes that implement this interface. */
  329. #define NS_DECL_NSISCHEMA \
  330.   NS_IMETHOD GetSchemaNamespace(nsAString & aSchemaNamespace); \
  331.   NS_IMETHOD GetTypeCount(PRUint32 *aTypeCount); \
  332.   NS_IMETHOD GetTypeByIndex(PRUint32 index, nsISchemaType **_retval); \
  333.   NS_IMETHOD GetTypeByName(const nsAString & name, nsISchemaType **_retval); \
  334.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount); \
  335.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttribute **_retval); \
  336.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttribute **_retval); \
  337.   NS_IMETHOD GetElementCount(PRUint32 *aElementCount); \
  338.   NS_IMETHOD GetElementByIndex(PRUint32 index, nsISchemaElement **_retval); \
  339.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval); \
  340.   NS_IMETHOD GetAttributeGroupCount(PRUint32 *aAttributeGroupCount); \
  341.   NS_IMETHOD GetAttributeGroupByIndex(PRUint32 index, nsISchemaAttributeGroup **_retval); \
  342.   NS_IMETHOD GetAttributeGroupByName(const nsAString & name, nsISchemaAttributeGroup **_retval); \
  343.   NS_IMETHOD GetModelGroupCount(PRUint32 *aModelGroupCount); \
  344.   NS_IMETHOD GetModelGroupByIndex(PRUint32 index, nsISchemaModelGroup **_retval); \
  345.   NS_IMETHOD GetModelGroupByName(const nsAString & name, nsISchemaModelGroup **_retval); \
  346.   NS_IMETHOD GetCollection(nsISchemaCollection * *aCollection); 
  347.  
  348. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  349. #define NS_FORWARD_NSISCHEMA(_to) \
  350.   NS_IMETHOD GetSchemaNamespace(nsAString & aSchemaNamespace) { return _to GetSchemaNamespace(aSchemaNamespace); } \
  351.   NS_IMETHOD GetTypeCount(PRUint32 *aTypeCount) { return _to GetTypeCount(aTypeCount); } \
  352.   NS_IMETHOD GetTypeByIndex(PRUint32 index, nsISchemaType **_retval) { return _to GetTypeByIndex(index, _retval); } \
  353.   NS_IMETHOD GetTypeByName(const nsAString & name, nsISchemaType **_retval) { return _to GetTypeByName(name, _retval); } \
  354.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return _to GetAttributeCount(aAttributeCount); } \
  355.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttribute **_retval) { return _to GetAttributeByIndex(index, _retval); } \
  356.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttribute **_retval) { return _to GetAttributeByName(name, _retval); } \
  357.   NS_IMETHOD GetElementCount(PRUint32 *aElementCount) { return _to GetElementCount(aElementCount); } \
  358.   NS_IMETHOD GetElementByIndex(PRUint32 index, nsISchemaElement **_retval) { return _to GetElementByIndex(index, _retval); } \
  359.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) { return _to GetElementByName(name, _retval); } \
  360.   NS_IMETHOD GetAttributeGroupCount(PRUint32 *aAttributeGroupCount) { return _to GetAttributeGroupCount(aAttributeGroupCount); } \
  361.   NS_IMETHOD GetAttributeGroupByIndex(PRUint32 index, nsISchemaAttributeGroup **_retval) { return _to GetAttributeGroupByIndex(index, _retval); } \
  362.   NS_IMETHOD GetAttributeGroupByName(const nsAString & name, nsISchemaAttributeGroup **_retval) { return _to GetAttributeGroupByName(name, _retval); } \
  363.   NS_IMETHOD GetModelGroupCount(PRUint32 *aModelGroupCount) { return _to GetModelGroupCount(aModelGroupCount); } \
  364.   NS_IMETHOD GetModelGroupByIndex(PRUint32 index, nsISchemaModelGroup **_retval) { return _to GetModelGroupByIndex(index, _retval); } \
  365.   NS_IMETHOD GetModelGroupByName(const nsAString & name, nsISchemaModelGroup **_retval) { return _to GetModelGroupByName(name, _retval); } \
  366.   NS_IMETHOD GetCollection(nsISchemaCollection * *aCollection) { return _to GetCollection(aCollection); } 
  367.  
  368. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  369. #define NS_FORWARD_SAFE_NSISCHEMA(_to) \
  370.   NS_IMETHOD GetSchemaNamespace(nsAString & aSchemaNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSchemaNamespace(aSchemaNamespace); } \
  371.   NS_IMETHOD GetTypeCount(PRUint32 *aTypeCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeCount(aTypeCount); } \
  372.   NS_IMETHOD GetTypeByIndex(PRUint32 index, nsISchemaType **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeByIndex(index, _retval); } \
  373.   NS_IMETHOD GetTypeByName(const nsAString & name, nsISchemaType **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetTypeByName(name, _retval); } \
  374.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeCount(aAttributeCount); } \
  375.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttribute **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByIndex(index, _retval); } \
  376.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttribute **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByName(name, _retval); } \
  377.   NS_IMETHOD GetElementCount(PRUint32 *aElementCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElementCount(aElementCount); } \
  378.   NS_IMETHOD GetElementByIndex(PRUint32 index, nsISchemaElement **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElementByIndex(index, _retval); } \
  379.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElementByName(name, _retval); } \
  380.   NS_IMETHOD GetAttributeGroupCount(PRUint32 *aAttributeGroupCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeGroupCount(aAttributeGroupCount); } \
  381.   NS_IMETHOD GetAttributeGroupByIndex(PRUint32 index, nsISchemaAttributeGroup **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeGroupByIndex(index, _retval); } \
  382.   NS_IMETHOD GetAttributeGroupByName(const nsAString & name, nsISchemaAttributeGroup **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeGroupByName(name, _retval); } \
  383.   NS_IMETHOD GetModelGroupCount(PRUint32 *aModelGroupCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModelGroupCount(aModelGroupCount); } \
  384.   NS_IMETHOD GetModelGroupByIndex(PRUint32 index, nsISchemaModelGroup **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModelGroupByIndex(index, _retval); } \
  385.   NS_IMETHOD GetModelGroupByName(const nsAString & name, nsISchemaModelGroup **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModelGroupByName(name, _retval); } \
  386.   NS_IMETHOD GetCollection(nsISchemaCollection * *aCollection) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCollection(aCollection); } 
  387.  
  388. #if 0
  389. /* Use the code below as a template for the implementation class for this interface. */
  390.  
  391. /* Header file */
  392. class nsSchema : public nsISchema
  393. {
  394. public:
  395.   NS_DECL_ISUPPORTS
  396.   NS_DECL_NSISCHEMA
  397.  
  398.   nsSchema();
  399.  
  400. private:
  401.   ~nsSchema();
  402.  
  403. protected:
  404.   /* additional members */
  405. };
  406.  
  407. /* Implementation file */
  408. NS_IMPL_ISUPPORTS1(nsSchema, nsISchema)
  409.  
  410. nsSchema::nsSchema()
  411. {
  412.   /* member initializers and constructor code */
  413. }
  414.  
  415. nsSchema::~nsSchema()
  416. {
  417.   /* destructor code */
  418. }
  419.  
  420. /* readonly attribute AString schemaNamespace; */
  421. NS_IMETHODIMP nsSchema::GetSchemaNamespace(nsAString & aSchemaNamespace)
  422. {
  423.     return NS_ERROR_NOT_IMPLEMENTED;
  424. }
  425.  
  426. /* readonly attribute PRUint32 typeCount; */
  427. NS_IMETHODIMP nsSchema::GetTypeCount(PRUint32 *aTypeCount)
  428. {
  429.     return NS_ERROR_NOT_IMPLEMENTED;
  430. }
  431.  
  432. /* nsISchemaType getTypeByIndex (in PRUint32 index); */
  433. NS_IMETHODIMP nsSchema::GetTypeByIndex(PRUint32 index, nsISchemaType **_retval)
  434. {
  435.     return NS_ERROR_NOT_IMPLEMENTED;
  436. }
  437.  
  438. /* nsISchemaType getTypeByName (in AString name); */
  439. NS_IMETHODIMP nsSchema::GetTypeByName(const nsAString & name, nsISchemaType **_retval)
  440. {
  441.     return NS_ERROR_NOT_IMPLEMENTED;
  442. }
  443.  
  444. /* readonly attribute PRUint32 attributeCount; */
  445. NS_IMETHODIMP nsSchema::GetAttributeCount(PRUint32 *aAttributeCount)
  446. {
  447.     return NS_ERROR_NOT_IMPLEMENTED;
  448. }
  449.  
  450. /* nsISchemaAttribute getAttributeByIndex (in PRUint32 index); */
  451. NS_IMETHODIMP nsSchema::GetAttributeByIndex(PRUint32 index, nsISchemaAttribute **_retval)
  452. {
  453.     return NS_ERROR_NOT_IMPLEMENTED;
  454. }
  455.  
  456. /* nsISchemaAttribute getAttributeByName (in AString name); */
  457. NS_IMETHODIMP nsSchema::GetAttributeByName(const nsAString & name, nsISchemaAttribute **_retval)
  458. {
  459.     return NS_ERROR_NOT_IMPLEMENTED;
  460. }
  461.  
  462. /* readonly attribute PRUint32 elementCount; */
  463. NS_IMETHODIMP nsSchema::GetElementCount(PRUint32 *aElementCount)
  464. {
  465.     return NS_ERROR_NOT_IMPLEMENTED;
  466. }
  467.  
  468. /* nsISchemaElement getElementByIndex (in PRUint32 index); */
  469. NS_IMETHODIMP nsSchema::GetElementByIndex(PRUint32 index, nsISchemaElement **_retval)
  470. {
  471.     return NS_ERROR_NOT_IMPLEMENTED;
  472. }
  473.  
  474. /* nsISchemaElement getElementByName (in AString name); */
  475. NS_IMETHODIMP nsSchema::GetElementByName(const nsAString & name, nsISchemaElement **_retval)
  476. {
  477.     return NS_ERROR_NOT_IMPLEMENTED;
  478. }
  479.  
  480. /* readonly attribute PRUint32 attributeGroupCount; */
  481. NS_IMETHODIMP nsSchema::GetAttributeGroupCount(PRUint32 *aAttributeGroupCount)
  482. {
  483.     return NS_ERROR_NOT_IMPLEMENTED;
  484. }
  485.  
  486. /* nsISchemaAttributeGroup getAttributeGroupByIndex (in PRUint32 index); */
  487. NS_IMETHODIMP nsSchema::GetAttributeGroupByIndex(PRUint32 index, nsISchemaAttributeGroup **_retval)
  488. {
  489.     return NS_ERROR_NOT_IMPLEMENTED;
  490. }
  491.  
  492. /* nsISchemaAttributeGroup getAttributeGroupByName (in AString name); */
  493. NS_IMETHODIMP nsSchema::GetAttributeGroupByName(const nsAString & name, nsISchemaAttributeGroup **_retval)
  494. {
  495.     return NS_ERROR_NOT_IMPLEMENTED;
  496. }
  497.  
  498. /* readonly attribute PRUint32 modelGroupCount; */
  499. NS_IMETHODIMP nsSchema::GetModelGroupCount(PRUint32 *aModelGroupCount)
  500. {
  501.     return NS_ERROR_NOT_IMPLEMENTED;
  502. }
  503.  
  504. /* nsISchemaModelGroup getModelGroupByIndex (in PRUint32 index); */
  505. NS_IMETHODIMP nsSchema::GetModelGroupByIndex(PRUint32 index, nsISchemaModelGroup **_retval)
  506. {
  507.     return NS_ERROR_NOT_IMPLEMENTED;
  508. }
  509.  
  510. /* nsISchemaModelGroup getModelGroupByName (in AString name); */
  511. NS_IMETHODIMP nsSchema::GetModelGroupByName(const nsAString & name, nsISchemaModelGroup **_retval)
  512. {
  513.     return NS_ERROR_NOT_IMPLEMENTED;
  514. }
  515.  
  516. /* readonly attribute nsISchemaCollection collection; */
  517. NS_IMETHODIMP nsSchema::GetCollection(nsISchemaCollection * *aCollection)
  518. {
  519.     return NS_ERROR_NOT_IMPLEMENTED;
  520. }
  521.  
  522. /* End of implementation class template. */
  523. #endif
  524.  
  525.  
  526. /* starting interface:    nsISchemaType */
  527. #define NS_ISCHEMATYPE_IID_STR "3c14a022-6f4e-11d5-9b46-000064657374"
  528.  
  529. #define NS_ISCHEMATYPE_IID \
  530.   {0x3c14a022, 0x6f4e, 0x11d5, \
  531.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  532.  
  533. class NS_NO_VTABLE nsISchemaType : public nsISchemaComponent {
  534.  public: 
  535.  
  536.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMATYPE_IID)
  537.  
  538.   enum { SCHEMA_TYPE_SIMPLE = 1U };
  539.  
  540.   enum { SCHEMA_TYPE_COMPLEX = 2U };
  541.  
  542.   enum { SCHEMA_TYPE_PLACEHOLDER = 3U };
  543.  
  544.   /* readonly attribute AString name; */
  545.   NS_IMETHOD GetName(nsAString & aName) = 0;
  546.  
  547.   /* readonly attribute unsigned short schemaType; */
  548.   NS_IMETHOD GetSchemaType(PRUint16 *aSchemaType) = 0;
  549.  
  550. };
  551.  
  552. /* Use this macro when declaring classes that implement this interface. */
  553. #define NS_DECL_NSISCHEMATYPE \
  554.   NS_IMETHOD GetName(nsAString & aName); \
  555.   NS_IMETHOD GetSchemaType(PRUint16 *aSchemaType); 
  556.  
  557. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  558. #define NS_FORWARD_NSISCHEMATYPE(_to) \
  559.   NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } \
  560.   NS_IMETHOD GetSchemaType(PRUint16 *aSchemaType) { return _to GetSchemaType(aSchemaType); } 
  561.  
  562. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  563. #define NS_FORWARD_SAFE_NSISCHEMATYPE(_to) \
  564.   NS_IMETHOD GetName(nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  565.   NS_IMETHOD GetSchemaType(PRUint16 *aSchemaType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSchemaType(aSchemaType); } 
  566.  
  567. #if 0
  568. /* Use the code below as a template for the implementation class for this interface. */
  569.  
  570. /* Header file */
  571. class nsSchemaType : public nsISchemaType
  572. {
  573. public:
  574.   NS_DECL_ISUPPORTS
  575.   NS_DECL_NSISCHEMATYPE
  576.  
  577.   nsSchemaType();
  578.  
  579. private:
  580.   ~nsSchemaType();
  581.  
  582. protected:
  583.   /* additional members */
  584. };
  585.  
  586. /* Implementation file */
  587. NS_IMPL_ISUPPORTS1(nsSchemaType, nsISchemaType)
  588.  
  589. nsSchemaType::nsSchemaType()
  590. {
  591.   /* member initializers and constructor code */
  592. }
  593.  
  594. nsSchemaType::~nsSchemaType()
  595. {
  596.   /* destructor code */
  597. }
  598.  
  599. /* readonly attribute AString name; */
  600. NS_IMETHODIMP nsSchemaType::GetName(nsAString & aName)
  601. {
  602.     return NS_ERROR_NOT_IMPLEMENTED;
  603. }
  604.  
  605. /* readonly attribute unsigned short schemaType; */
  606. NS_IMETHODIMP nsSchemaType::GetSchemaType(PRUint16 *aSchemaType)
  607. {
  608.     return NS_ERROR_NOT_IMPLEMENTED;
  609. }
  610.  
  611. /* End of implementation class template. */
  612. #endif
  613.  
  614.  
  615. /* starting interface:    nsISchemaSimpleType */
  616. #define NS_ISCHEMASIMPLETYPE_IID_STR "3c14a023-6f4e-11d5-9b46-000064657374"
  617.  
  618. #define NS_ISCHEMASIMPLETYPE_IID \
  619.   {0x3c14a023, 0x6f4e, 0x11d5, \
  620.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  621.  
  622. class NS_NO_VTABLE nsISchemaSimpleType : public nsISchemaType {
  623.  public: 
  624.  
  625.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMASIMPLETYPE_IID)
  626.  
  627.   enum { SIMPLE_TYPE_BUILTIN = 1U };
  628.  
  629.   enum { SIMPLE_TYPE_LIST = 2U };
  630.  
  631.   enum { SIMPLE_TYPE_UNION = 3U };
  632.  
  633.   enum { SIMPLE_TYPE_RESTRICTION = 4U };
  634.  
  635.   /* readonly attribute unsigned short simpleType; */
  636.   NS_IMETHOD GetSimpleType(PRUint16 *aSimpleType) = 0;
  637.  
  638. };
  639.  
  640. /* Use this macro when declaring classes that implement this interface. */
  641. #define NS_DECL_NSISCHEMASIMPLETYPE \
  642.   NS_IMETHOD GetSimpleType(PRUint16 *aSimpleType); 
  643.  
  644. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  645. #define NS_FORWARD_NSISCHEMASIMPLETYPE(_to) \
  646.   NS_IMETHOD GetSimpleType(PRUint16 *aSimpleType) { return _to GetSimpleType(aSimpleType); } 
  647.  
  648. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  649. #define NS_FORWARD_SAFE_NSISCHEMASIMPLETYPE(_to) \
  650.   NS_IMETHOD GetSimpleType(PRUint16 *aSimpleType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSimpleType(aSimpleType); } 
  651.  
  652. #if 0
  653. /* Use the code below as a template for the implementation class for this interface. */
  654.  
  655. /* Header file */
  656. class nsSchemaSimpleType : public nsISchemaSimpleType
  657. {
  658. public:
  659.   NS_DECL_ISUPPORTS
  660.   NS_DECL_NSISCHEMASIMPLETYPE
  661.  
  662.   nsSchemaSimpleType();
  663.  
  664. private:
  665.   ~nsSchemaSimpleType();
  666.  
  667. protected:
  668.   /* additional members */
  669. };
  670.  
  671. /* Implementation file */
  672. NS_IMPL_ISUPPORTS1(nsSchemaSimpleType, nsISchemaSimpleType)
  673.  
  674. nsSchemaSimpleType::nsSchemaSimpleType()
  675. {
  676.   /* member initializers and constructor code */
  677. }
  678.  
  679. nsSchemaSimpleType::~nsSchemaSimpleType()
  680. {
  681.   /* destructor code */
  682. }
  683.  
  684. /* readonly attribute unsigned short simpleType; */
  685. NS_IMETHODIMP nsSchemaSimpleType::GetSimpleType(PRUint16 *aSimpleType)
  686. {
  687.     return NS_ERROR_NOT_IMPLEMENTED;
  688. }
  689.  
  690. /* End of implementation class template. */
  691. #endif
  692.  
  693.  
  694. /* starting interface:    nsISchemaBuiltinType */
  695. #define NS_ISCHEMABUILTINTYPE_IID_STR "3c14a024-6f4e-11d5-9b46-000064657374"
  696.  
  697. #define NS_ISCHEMABUILTINTYPE_IID \
  698.   {0x3c14a024, 0x6f4e, 0x11d5, \
  699.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  700.  
  701. class NS_NO_VTABLE nsISchemaBuiltinType : public nsISchemaSimpleType {
  702.  public: 
  703.  
  704.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMABUILTINTYPE_IID)
  705.  
  706.   enum { BUILTIN_TYPE_ANYTYPE = 1U };
  707.  
  708.   enum { BUILTIN_TYPE_STRING = 2U };
  709.  
  710.   enum { BUILTIN_TYPE_NORMALIZED_STRING = 3U };
  711.  
  712.   enum { BUILTIN_TYPE_TOKEN = 4U };
  713.  
  714.   enum { BUILTIN_TYPE_BYTE = 5U };
  715.  
  716.   enum { BUILTIN_TYPE_UNSIGNEDBYTE = 6U };
  717.  
  718.   enum { BUILTIN_TYPE_BASE64BINARY = 7U };
  719.  
  720.   enum { BUILTIN_TYPE_HEXBINARY = 8U };
  721.  
  722.   enum { BUILTIN_TYPE_INTEGER = 9U };
  723.  
  724.   enum { BUILTIN_TYPE_POSITIVEINTEGER = 10U };
  725.  
  726.   enum { BUILTIN_TYPE_NEGATIVEINTEGER = 11U };
  727.  
  728.   enum { BUILTIN_TYPE_NONNEGATIVEINTEGER = 12U };
  729.  
  730.   enum { BUILTIN_TYPE_NONPOSITIVEINTEGER = 13U };
  731.  
  732.   enum { BUILTIN_TYPE_INT = 14U };
  733.  
  734.   enum { BUILTIN_TYPE_UNSIGNEDINT = 15U };
  735.  
  736.   enum { BUILTIN_TYPE_LONG = 16U };
  737.  
  738.   enum { BUILTIN_TYPE_UNSIGNEDLONG = 17U };
  739.  
  740.   enum { BUILTIN_TYPE_SHORT = 18U };
  741.  
  742.   enum { BUILTIN_TYPE_UNSIGNEDSHORT = 19U };
  743.  
  744.   enum { BUILTIN_TYPE_DECIMAL = 20U };
  745.  
  746.   enum { BUILTIN_TYPE_FLOAT = 21U };
  747.  
  748.   enum { BUILTIN_TYPE_DOUBLE = 22U };
  749.  
  750.   enum { BUILTIN_TYPE_BOOLEAN = 23U };
  751.  
  752.   enum { BUILTIN_TYPE_TIME = 24U };
  753.  
  754.   enum { BUILTIN_TYPE_DATETIME = 25U };
  755.  
  756.   enum { BUILTIN_TYPE_DURATION = 26U };
  757.  
  758.   enum { BUILTIN_TYPE_DATE = 27U };
  759.  
  760.   enum { BUILTIN_TYPE_GMONTH = 28U };
  761.  
  762.   enum { BUILTIN_TYPE_GYEAR = 29U };
  763.  
  764.   enum { BUILTIN_TYPE_GYEARMONTH = 30U };
  765.  
  766.   enum { BUILTIN_TYPE_GDAY = 31U };
  767.  
  768.   enum { BUILTIN_TYPE_GMONTHDAY = 32U };
  769.  
  770.   enum { BUILTIN_TYPE_NAME = 33U };
  771.  
  772.   enum { BUILTIN_TYPE_QNAME = 34U };
  773.  
  774.   enum { BUILTIN_TYPE_NCNAME = 35U };
  775.  
  776.   enum { BUILTIN_TYPE_ANYURI = 36U };
  777.  
  778.   enum { BUILTIN_TYPE_LANGUAGE = 37U };
  779.  
  780.   enum { BUILTIN_TYPE_ID = 38U };
  781.  
  782.   enum { BUILTIN_TYPE_IDREF = 39U };
  783.  
  784.   enum { BUILTIN_TYPE_IDREFS = 40U };
  785.  
  786.   enum { BUILTIN_TYPE_ENTITY = 41U };
  787.  
  788.   enum { BUILTIN_TYPE_ENTITIES = 42U };
  789.  
  790.   enum { BUILTIN_TYPE_NOTATION = 43U };
  791.  
  792.   enum { BUILTIN_TYPE_NMTOKEN = 44U };
  793.  
  794.   enum { BUILTIN_TYPE_NMTOKENS = 45U };
  795.  
  796.   /* readonly attribute unsigned short builtinType; */
  797.   NS_IMETHOD GetBuiltinType(PRUint16 *aBuiltinType) = 0;
  798.  
  799. };
  800.  
  801. /* Use this macro when declaring classes that implement this interface. */
  802. #define NS_DECL_NSISCHEMABUILTINTYPE \
  803.   NS_IMETHOD GetBuiltinType(PRUint16 *aBuiltinType); 
  804.  
  805. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  806. #define NS_FORWARD_NSISCHEMABUILTINTYPE(_to) \
  807.   NS_IMETHOD GetBuiltinType(PRUint16 *aBuiltinType) { return _to GetBuiltinType(aBuiltinType); } 
  808.  
  809. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  810. #define NS_FORWARD_SAFE_NSISCHEMABUILTINTYPE(_to) \
  811.   NS_IMETHOD GetBuiltinType(PRUint16 *aBuiltinType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBuiltinType(aBuiltinType); } 
  812.  
  813. #if 0
  814. /* Use the code below as a template for the implementation class for this interface. */
  815.  
  816. /* Header file */
  817. class nsSchemaBuiltinType : public nsISchemaBuiltinType
  818. {
  819. public:
  820.   NS_DECL_ISUPPORTS
  821.   NS_DECL_NSISCHEMABUILTINTYPE
  822.  
  823.   nsSchemaBuiltinType();
  824.  
  825. private:
  826.   ~nsSchemaBuiltinType();
  827.  
  828. protected:
  829.   /* additional members */
  830. };
  831.  
  832. /* Implementation file */
  833. NS_IMPL_ISUPPORTS1(nsSchemaBuiltinType, nsISchemaBuiltinType)
  834.  
  835. nsSchemaBuiltinType::nsSchemaBuiltinType()
  836. {
  837.   /* member initializers and constructor code */
  838. }
  839.  
  840. nsSchemaBuiltinType::~nsSchemaBuiltinType()
  841. {
  842.   /* destructor code */
  843. }
  844.  
  845. /* readonly attribute unsigned short builtinType; */
  846. NS_IMETHODIMP nsSchemaBuiltinType::GetBuiltinType(PRUint16 *aBuiltinType)
  847. {
  848.     return NS_ERROR_NOT_IMPLEMENTED;
  849. }
  850.  
  851. /* End of implementation class template. */
  852. #endif
  853.  
  854.  
  855. /* starting interface:    nsISchemaListType */
  856. #define NS_ISCHEMALISTTYPE_IID_STR "3c14a025-6f4e-11d5-9b46-000064657374"
  857.  
  858. #define NS_ISCHEMALISTTYPE_IID \
  859.   {0x3c14a025, 0x6f4e, 0x11d5, \
  860.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  861.  
  862. class NS_NO_VTABLE nsISchemaListType : public nsISchemaSimpleType {
  863.  public: 
  864.  
  865.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMALISTTYPE_IID)
  866.  
  867.   /* readonly attribute nsISchemaSimpleType listType; */
  868.   NS_IMETHOD GetListType(nsISchemaSimpleType * *aListType) = 0;
  869.  
  870. };
  871.  
  872. /* Use this macro when declaring classes that implement this interface. */
  873. #define NS_DECL_NSISCHEMALISTTYPE \
  874.   NS_IMETHOD GetListType(nsISchemaSimpleType * *aListType); 
  875.  
  876. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  877. #define NS_FORWARD_NSISCHEMALISTTYPE(_to) \
  878.   NS_IMETHOD GetListType(nsISchemaSimpleType * *aListType) { return _to GetListType(aListType); } 
  879.  
  880. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  881. #define NS_FORWARD_SAFE_NSISCHEMALISTTYPE(_to) \
  882.   NS_IMETHOD GetListType(nsISchemaSimpleType * *aListType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetListType(aListType); } 
  883.  
  884. #if 0
  885. /* Use the code below as a template for the implementation class for this interface. */
  886.  
  887. /* Header file */
  888. class nsSchemaListType : public nsISchemaListType
  889. {
  890. public:
  891.   NS_DECL_ISUPPORTS
  892.   NS_DECL_NSISCHEMALISTTYPE
  893.  
  894.   nsSchemaListType();
  895.  
  896. private:
  897.   ~nsSchemaListType();
  898.  
  899. protected:
  900.   /* additional members */
  901. };
  902.  
  903. /* Implementation file */
  904. NS_IMPL_ISUPPORTS1(nsSchemaListType, nsISchemaListType)
  905.  
  906. nsSchemaListType::nsSchemaListType()
  907. {
  908.   /* member initializers and constructor code */
  909. }
  910.  
  911. nsSchemaListType::~nsSchemaListType()
  912. {
  913.   /* destructor code */
  914. }
  915.  
  916. /* readonly attribute nsISchemaSimpleType listType; */
  917. NS_IMETHODIMP nsSchemaListType::GetListType(nsISchemaSimpleType * *aListType)
  918. {
  919.     return NS_ERROR_NOT_IMPLEMENTED;
  920. }
  921.  
  922. /* End of implementation class template. */
  923. #endif
  924.  
  925.  
  926. /* starting interface:    nsISchemaUnionType */
  927. #define NS_ISCHEMAUNIONTYPE_IID_STR "3c14a026-6f4e-11d5-9b46-000064657374"
  928.  
  929. #define NS_ISCHEMAUNIONTYPE_IID \
  930.   {0x3c14a026, 0x6f4e, 0x11d5, \
  931.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  932.  
  933. class NS_NO_VTABLE nsISchemaUnionType : public nsISchemaSimpleType {
  934.  public: 
  935.  
  936.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAUNIONTYPE_IID)
  937.  
  938.   /* readonly attribute PRUint32 unionTypeCount; */
  939.   NS_IMETHOD GetUnionTypeCount(PRUint32 *aUnionTypeCount) = 0;
  940.  
  941.   /* nsISchemaSimpleType getUnionType (in PRUint32 index); */
  942.   NS_IMETHOD GetUnionType(PRUint32 index, nsISchemaSimpleType **_retval) = 0;
  943.  
  944. };
  945.  
  946. /* Use this macro when declaring classes that implement this interface. */
  947. #define NS_DECL_NSISCHEMAUNIONTYPE \
  948.   NS_IMETHOD GetUnionTypeCount(PRUint32 *aUnionTypeCount); \
  949.   NS_IMETHOD GetUnionType(PRUint32 index, nsISchemaSimpleType **_retval); 
  950.  
  951. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  952. #define NS_FORWARD_NSISCHEMAUNIONTYPE(_to) \
  953.   NS_IMETHOD GetUnionTypeCount(PRUint32 *aUnionTypeCount) { return _to GetUnionTypeCount(aUnionTypeCount); } \
  954.   NS_IMETHOD GetUnionType(PRUint32 index, nsISchemaSimpleType **_retval) { return _to GetUnionType(index, _retval); } 
  955.  
  956. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  957. #define NS_FORWARD_SAFE_NSISCHEMAUNIONTYPE(_to) \
  958.   NS_IMETHOD GetUnionTypeCount(PRUint32 *aUnionTypeCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnionTypeCount(aUnionTypeCount); } \
  959.   NS_IMETHOD GetUnionType(PRUint32 index, nsISchemaSimpleType **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUnionType(index, _retval); } 
  960.  
  961. #if 0
  962. /* Use the code below as a template for the implementation class for this interface. */
  963.  
  964. /* Header file */
  965. class nsSchemaUnionType : public nsISchemaUnionType
  966. {
  967. public:
  968.   NS_DECL_ISUPPORTS
  969.   NS_DECL_NSISCHEMAUNIONTYPE
  970.  
  971.   nsSchemaUnionType();
  972.  
  973. private:
  974.   ~nsSchemaUnionType();
  975.  
  976. protected:
  977.   /* additional members */
  978. };
  979.  
  980. /* Implementation file */
  981. NS_IMPL_ISUPPORTS1(nsSchemaUnionType, nsISchemaUnionType)
  982.  
  983. nsSchemaUnionType::nsSchemaUnionType()
  984. {
  985.   /* member initializers and constructor code */
  986. }
  987.  
  988. nsSchemaUnionType::~nsSchemaUnionType()
  989. {
  990.   /* destructor code */
  991. }
  992.  
  993. /* readonly attribute PRUint32 unionTypeCount; */
  994. NS_IMETHODIMP nsSchemaUnionType::GetUnionTypeCount(PRUint32 *aUnionTypeCount)
  995. {
  996.     return NS_ERROR_NOT_IMPLEMENTED;
  997. }
  998.  
  999. /* nsISchemaSimpleType getUnionType (in PRUint32 index); */
  1000. NS_IMETHODIMP nsSchemaUnionType::GetUnionType(PRUint32 index, nsISchemaSimpleType **_retval)
  1001. {
  1002.     return NS_ERROR_NOT_IMPLEMENTED;
  1003. }
  1004.  
  1005. /* End of implementation class template. */
  1006. #endif
  1007.  
  1008.  
  1009. /* starting interface:    nsISchemaRestrictionType */
  1010. #define NS_ISCHEMARESTRICTIONTYPE_IID_STR "3c14a027-6f4e-11d5-9b46-000064657374"
  1011.  
  1012. #define NS_ISCHEMARESTRICTIONTYPE_IID \
  1013.   {0x3c14a027, 0x6f4e, 0x11d5, \
  1014.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1015.  
  1016. class NS_NO_VTABLE nsISchemaRestrictionType : public nsISchemaSimpleType {
  1017.  public: 
  1018.  
  1019.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMARESTRICTIONTYPE_IID)
  1020.  
  1021.   /* readonly attribute nsISchemaSimpleType baseType; */
  1022.   NS_IMETHOD GetBaseType(nsISchemaSimpleType * *aBaseType) = 0;
  1023.  
  1024.   /* readonly attribute PRUint32 facetCount; */
  1025.   NS_IMETHOD GetFacetCount(PRUint32 *aFacetCount) = 0;
  1026.  
  1027.   /* nsISchemaFacet getFacet (in PRUint32 index); */
  1028.   NS_IMETHOD GetFacet(PRUint32 index, nsISchemaFacet **_retval) = 0;
  1029.  
  1030. };
  1031.  
  1032. /* Use this macro when declaring classes that implement this interface. */
  1033. #define NS_DECL_NSISCHEMARESTRICTIONTYPE \
  1034.   NS_IMETHOD GetBaseType(nsISchemaSimpleType * *aBaseType); \
  1035.   NS_IMETHOD GetFacetCount(PRUint32 *aFacetCount); \
  1036.   NS_IMETHOD GetFacet(PRUint32 index, nsISchemaFacet **_retval); 
  1037.  
  1038. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1039. #define NS_FORWARD_NSISCHEMARESTRICTIONTYPE(_to) \
  1040.   NS_IMETHOD GetBaseType(nsISchemaSimpleType * *aBaseType) { return _to GetBaseType(aBaseType); } \
  1041.   NS_IMETHOD GetFacetCount(PRUint32 *aFacetCount) { return _to GetFacetCount(aFacetCount); } \
  1042.   NS_IMETHOD GetFacet(PRUint32 index, nsISchemaFacet **_retval) { return _to GetFacet(index, _retval); } 
  1043.  
  1044. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1045. #define NS_FORWARD_SAFE_NSISCHEMARESTRICTIONTYPE(_to) \
  1046.   NS_IMETHOD GetBaseType(nsISchemaSimpleType * *aBaseType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseType(aBaseType); } \
  1047.   NS_IMETHOD GetFacetCount(PRUint32 *aFacetCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacetCount(aFacetCount); } \
  1048.   NS_IMETHOD GetFacet(PRUint32 index, nsISchemaFacet **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacet(index, _retval); } 
  1049.  
  1050. #if 0
  1051. /* Use the code below as a template for the implementation class for this interface. */
  1052.  
  1053. /* Header file */
  1054. class nsSchemaRestrictionType : public nsISchemaRestrictionType
  1055. {
  1056. public:
  1057.   NS_DECL_ISUPPORTS
  1058.   NS_DECL_NSISCHEMARESTRICTIONTYPE
  1059.  
  1060.   nsSchemaRestrictionType();
  1061.  
  1062. private:
  1063.   ~nsSchemaRestrictionType();
  1064.  
  1065. protected:
  1066.   /* additional members */
  1067. };
  1068.  
  1069. /* Implementation file */
  1070. NS_IMPL_ISUPPORTS1(nsSchemaRestrictionType, nsISchemaRestrictionType)
  1071.  
  1072. nsSchemaRestrictionType::nsSchemaRestrictionType()
  1073. {
  1074.   /* member initializers and constructor code */
  1075. }
  1076.  
  1077. nsSchemaRestrictionType::~nsSchemaRestrictionType()
  1078. {
  1079.   /* destructor code */
  1080. }
  1081.  
  1082. /* readonly attribute nsISchemaSimpleType baseType; */
  1083. NS_IMETHODIMP nsSchemaRestrictionType::GetBaseType(nsISchemaSimpleType * *aBaseType)
  1084. {
  1085.     return NS_ERROR_NOT_IMPLEMENTED;
  1086. }
  1087.  
  1088. /* readonly attribute PRUint32 facetCount; */
  1089. NS_IMETHODIMP nsSchemaRestrictionType::GetFacetCount(PRUint32 *aFacetCount)
  1090. {
  1091.     return NS_ERROR_NOT_IMPLEMENTED;
  1092. }
  1093.  
  1094. /* nsISchemaFacet getFacet (in PRUint32 index); */
  1095. NS_IMETHODIMP nsSchemaRestrictionType::GetFacet(PRUint32 index, nsISchemaFacet **_retval)
  1096. {
  1097.     return NS_ERROR_NOT_IMPLEMENTED;
  1098. }
  1099.  
  1100. /* End of implementation class template. */
  1101. #endif
  1102.  
  1103.  
  1104. /* starting interface:    nsISchemaComplexType */
  1105. #define NS_ISCHEMACOMPLEXTYPE_IID_STR "3c14a028-6f4e-11d5-9b46-000064657374"
  1106.  
  1107. #define NS_ISCHEMACOMPLEXTYPE_IID \
  1108.   {0x3c14a028, 0x6f4e, 0x11d5, \
  1109.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1110.  
  1111. class NS_NO_VTABLE nsISchemaComplexType : public nsISchemaType {
  1112.  public: 
  1113.  
  1114.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMACOMPLEXTYPE_IID)
  1115.  
  1116.   enum { CONTENT_MODEL_EMPTY = 1U };
  1117.  
  1118.   enum { CONTENT_MODEL_SIMPLE = 2U };
  1119.  
  1120.   enum { CONTENT_MODEL_ELEMENT_ONLY = 3U };
  1121.  
  1122.   enum { CONTENT_MODEL_MIXED = 4U };
  1123.  
  1124.   enum { DERIVATION_EXTENSION_SIMPLE = 1U };
  1125.  
  1126.   enum { DERIVATION_RESTRICTION_SIMPLE = 2U };
  1127.  
  1128.   enum { DERIVATION_EXTENSION_COMPLEX = 3U };
  1129.  
  1130.   enum { DERIVATION_RESTRICTION_COMPLEX = 4U };
  1131.  
  1132.   enum { DERIVATION_SELF_CONTAINED = 5U };
  1133.  
  1134.   /* readonly attribute unsigned short contentModel; */
  1135.   NS_IMETHOD GetContentModel(PRUint16 *aContentModel) = 0;
  1136.  
  1137.   /* readonly attribute unsigned short derivation; */
  1138.   NS_IMETHOD GetDerivation(PRUint16 *aDerivation) = 0;
  1139.  
  1140.   /* readonly attribute nsISchemaType baseType; */
  1141.   NS_IMETHOD GetBaseType(nsISchemaType * *aBaseType) = 0;
  1142.  
  1143.   /* readonly attribute nsISchemaSimpleType simpleBaseType; */
  1144.   NS_IMETHOD GetSimpleBaseType(nsISchemaSimpleType * *aSimpleBaseType) = 0;
  1145.  
  1146.   /* readonly attribute nsISchemaModelGroup modelGroup; */
  1147.   NS_IMETHOD GetModelGroup(nsISchemaModelGroup * *aModelGroup) = 0;
  1148.  
  1149.   /* readonly attribute PRUint32 attributeCount; */
  1150.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) = 0;
  1151.  
  1152.   /* nsISchemaAttributeComponent getAttributeByIndex (in PRUint32 index); */
  1153.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) = 0;
  1154.  
  1155.   /* nsISchemaAttributeComponent getAttributeByName (in AString name); */
  1156.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) = 0;
  1157.  
  1158.   /* readonly attribute boolean abstract; */
  1159.   NS_IMETHOD GetAbstract(PRBool *aAbstract) = 0;
  1160.  
  1161.   /* readonly attribute boolean isArray; */
  1162.   NS_IMETHOD GetIsArray(PRBool *aIsArray) = 0;
  1163.  
  1164.   /* readonly attribute nsISchemaType arrayType; */
  1165.   NS_IMETHOD GetArrayType(nsISchemaType * *aArrayType) = 0;
  1166.  
  1167.   /* readonly attribute PRUint32 arrayDimension; */
  1168.   NS_IMETHOD GetArrayDimension(PRUint32 *aArrayDimension) = 0;
  1169.  
  1170. };
  1171.  
  1172. /* Use this macro when declaring classes that implement this interface. */
  1173. #define NS_DECL_NSISCHEMACOMPLEXTYPE \
  1174.   NS_IMETHOD GetContentModel(PRUint16 *aContentModel); \
  1175.   NS_IMETHOD GetDerivation(PRUint16 *aDerivation); \
  1176.   NS_IMETHOD GetBaseType(nsISchemaType * *aBaseType); \
  1177.   NS_IMETHOD GetSimpleBaseType(nsISchemaSimpleType * *aSimpleBaseType); \
  1178.   NS_IMETHOD GetModelGroup(nsISchemaModelGroup * *aModelGroup); \
  1179.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount); \
  1180.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval); \
  1181.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval); \
  1182.   NS_IMETHOD GetAbstract(PRBool *aAbstract); \
  1183.   NS_IMETHOD GetIsArray(PRBool *aIsArray); \
  1184.   NS_IMETHOD GetArrayType(nsISchemaType * *aArrayType); \
  1185.   NS_IMETHOD GetArrayDimension(PRUint32 *aArrayDimension); 
  1186.  
  1187. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1188. #define NS_FORWARD_NSISCHEMACOMPLEXTYPE(_to) \
  1189.   NS_IMETHOD GetContentModel(PRUint16 *aContentModel) { return _to GetContentModel(aContentModel); } \
  1190.   NS_IMETHOD GetDerivation(PRUint16 *aDerivation) { return _to GetDerivation(aDerivation); } \
  1191.   NS_IMETHOD GetBaseType(nsISchemaType * *aBaseType) { return _to GetBaseType(aBaseType); } \
  1192.   NS_IMETHOD GetSimpleBaseType(nsISchemaSimpleType * *aSimpleBaseType) { return _to GetSimpleBaseType(aSimpleBaseType); } \
  1193.   NS_IMETHOD GetModelGroup(nsISchemaModelGroup * *aModelGroup) { return _to GetModelGroup(aModelGroup); } \
  1194.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return _to GetAttributeCount(aAttributeCount); } \
  1195.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) { return _to GetAttributeByIndex(index, _retval); } \
  1196.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) { return _to GetAttributeByName(name, _retval); } \
  1197.   NS_IMETHOD GetAbstract(PRBool *aAbstract) { return _to GetAbstract(aAbstract); } \
  1198.   NS_IMETHOD GetIsArray(PRBool *aIsArray) { return _to GetIsArray(aIsArray); } \
  1199.   NS_IMETHOD GetArrayType(nsISchemaType * *aArrayType) { return _to GetArrayType(aArrayType); } \
  1200.   NS_IMETHOD GetArrayDimension(PRUint32 *aArrayDimension) { return _to GetArrayDimension(aArrayDimension); } 
  1201.  
  1202. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1203. #define NS_FORWARD_SAFE_NSISCHEMACOMPLEXTYPE(_to) \
  1204.   NS_IMETHOD GetContentModel(PRUint16 *aContentModel) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetContentModel(aContentModel); } \
  1205.   NS_IMETHOD GetDerivation(PRUint16 *aDerivation) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDerivation(aDerivation); } \
  1206.   NS_IMETHOD GetBaseType(nsISchemaType * *aBaseType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetBaseType(aBaseType); } \
  1207.   NS_IMETHOD GetSimpleBaseType(nsISchemaSimpleType * *aSimpleBaseType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetSimpleBaseType(aSimpleBaseType); } \
  1208.   NS_IMETHOD GetModelGroup(nsISchemaModelGroup * *aModelGroup) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetModelGroup(aModelGroup); } \
  1209.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeCount(aAttributeCount); } \
  1210.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByIndex(index, _retval); } \
  1211.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByName(name, _retval); } \
  1212.   NS_IMETHOD GetAbstract(PRBool *aAbstract) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAbstract(aAbstract); } \
  1213.   NS_IMETHOD GetIsArray(PRBool *aIsArray) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsArray(aIsArray); } \
  1214.   NS_IMETHOD GetArrayType(nsISchemaType * *aArrayType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArrayType(aArrayType); } \
  1215.   NS_IMETHOD GetArrayDimension(PRUint32 *aArrayDimension) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetArrayDimension(aArrayDimension); } 
  1216.  
  1217. #if 0
  1218. /* Use the code below as a template for the implementation class for this interface. */
  1219.  
  1220. /* Header file */
  1221. class nsSchemaComplexType : public nsISchemaComplexType
  1222. {
  1223. public:
  1224.   NS_DECL_ISUPPORTS
  1225.   NS_DECL_NSISCHEMACOMPLEXTYPE
  1226.  
  1227.   nsSchemaComplexType();
  1228.  
  1229. private:
  1230.   ~nsSchemaComplexType();
  1231.  
  1232. protected:
  1233.   /* additional members */
  1234. };
  1235.  
  1236. /* Implementation file */
  1237. NS_IMPL_ISUPPORTS1(nsSchemaComplexType, nsISchemaComplexType)
  1238.  
  1239. nsSchemaComplexType::nsSchemaComplexType()
  1240. {
  1241.   /* member initializers and constructor code */
  1242. }
  1243.  
  1244. nsSchemaComplexType::~nsSchemaComplexType()
  1245. {
  1246.   /* destructor code */
  1247. }
  1248.  
  1249. /* readonly attribute unsigned short contentModel; */
  1250. NS_IMETHODIMP nsSchemaComplexType::GetContentModel(PRUint16 *aContentModel)
  1251. {
  1252.     return NS_ERROR_NOT_IMPLEMENTED;
  1253. }
  1254.  
  1255. /* readonly attribute unsigned short derivation; */
  1256. NS_IMETHODIMP nsSchemaComplexType::GetDerivation(PRUint16 *aDerivation)
  1257. {
  1258.     return NS_ERROR_NOT_IMPLEMENTED;
  1259. }
  1260.  
  1261. /* readonly attribute nsISchemaType baseType; */
  1262. NS_IMETHODIMP nsSchemaComplexType::GetBaseType(nsISchemaType * *aBaseType)
  1263. {
  1264.     return NS_ERROR_NOT_IMPLEMENTED;
  1265. }
  1266.  
  1267. /* readonly attribute nsISchemaSimpleType simpleBaseType; */
  1268. NS_IMETHODIMP nsSchemaComplexType::GetSimpleBaseType(nsISchemaSimpleType * *aSimpleBaseType)
  1269. {
  1270.     return NS_ERROR_NOT_IMPLEMENTED;
  1271. }
  1272.  
  1273. /* readonly attribute nsISchemaModelGroup modelGroup; */
  1274. NS_IMETHODIMP nsSchemaComplexType::GetModelGroup(nsISchemaModelGroup * *aModelGroup)
  1275. {
  1276.     return NS_ERROR_NOT_IMPLEMENTED;
  1277. }
  1278.  
  1279. /* readonly attribute PRUint32 attributeCount; */
  1280. NS_IMETHODIMP nsSchemaComplexType::GetAttributeCount(PRUint32 *aAttributeCount)
  1281. {
  1282.     return NS_ERROR_NOT_IMPLEMENTED;
  1283. }
  1284.  
  1285. /* nsISchemaAttributeComponent getAttributeByIndex (in PRUint32 index); */
  1286. NS_IMETHODIMP nsSchemaComplexType::GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval)
  1287. {
  1288.     return NS_ERROR_NOT_IMPLEMENTED;
  1289. }
  1290.  
  1291. /* nsISchemaAttributeComponent getAttributeByName (in AString name); */
  1292. NS_IMETHODIMP nsSchemaComplexType::GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval)
  1293. {
  1294.     return NS_ERROR_NOT_IMPLEMENTED;
  1295. }
  1296.  
  1297. /* readonly attribute boolean abstract; */
  1298. NS_IMETHODIMP nsSchemaComplexType::GetAbstract(PRBool *aAbstract)
  1299. {
  1300.     return NS_ERROR_NOT_IMPLEMENTED;
  1301. }
  1302.  
  1303. /* readonly attribute boolean isArray; */
  1304. NS_IMETHODIMP nsSchemaComplexType::GetIsArray(PRBool *aIsArray)
  1305. {
  1306.     return NS_ERROR_NOT_IMPLEMENTED;
  1307. }
  1308.  
  1309. /* readonly attribute nsISchemaType arrayType; */
  1310. NS_IMETHODIMP nsSchemaComplexType::GetArrayType(nsISchemaType * *aArrayType)
  1311. {
  1312.     return NS_ERROR_NOT_IMPLEMENTED;
  1313. }
  1314.  
  1315. /* readonly attribute PRUint32 arrayDimension; */
  1316. NS_IMETHODIMP nsSchemaComplexType::GetArrayDimension(PRUint32 *aArrayDimension)
  1317. {
  1318.     return NS_ERROR_NOT_IMPLEMENTED;
  1319. }
  1320.  
  1321. /* End of implementation class template. */
  1322. #endif
  1323.  
  1324.  
  1325. /* starting interface:    nsISchemaParticle */
  1326. #define NS_ISCHEMAPARTICLE_IID_STR "3c14a029-6f4e-11d5-9b46-000064657374"
  1327.  
  1328. #define NS_ISCHEMAPARTICLE_IID \
  1329.   {0x3c14a029, 0x6f4e, 0x11d5, \
  1330.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1331.  
  1332. class NS_NO_VTABLE nsISchemaParticle : public nsISchemaComponent {
  1333.  public: 
  1334.  
  1335.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAPARTICLE_IID)
  1336.  
  1337.   enum { PARTICLE_TYPE_ELEMENT = 1U };
  1338.  
  1339.   enum { PARTICLE_TYPE_MODEL_GROUP = 2U };
  1340.  
  1341.   enum { PARTICLE_TYPE_ANY = 3U };
  1342.  
  1343.   enum { OCCURRENCE_UNBOUNDED = 4294967295U };
  1344.  
  1345.   /* readonly attribute AString name; */
  1346.   NS_IMETHOD GetName(nsAString & aName) = 0;
  1347.  
  1348.   /* readonly attribute unsigned short particleType; */
  1349.   NS_IMETHOD GetParticleType(PRUint16 *aParticleType) = 0;
  1350.  
  1351.   /* readonly attribute PRUint32 minOccurs; */
  1352.   NS_IMETHOD GetMinOccurs(PRUint32 *aMinOccurs) = 0;
  1353.  
  1354.   /* readonly attribute PRUint32 maxOccurs; */
  1355.   NS_IMETHOD GetMaxOccurs(PRUint32 *aMaxOccurs) = 0;
  1356.  
  1357. };
  1358.  
  1359. /* Use this macro when declaring classes that implement this interface. */
  1360. #define NS_DECL_NSISCHEMAPARTICLE \
  1361.   NS_IMETHOD GetName(nsAString & aName); \
  1362.   NS_IMETHOD GetParticleType(PRUint16 *aParticleType); \
  1363.   NS_IMETHOD GetMinOccurs(PRUint32 *aMinOccurs); \
  1364.   NS_IMETHOD GetMaxOccurs(PRUint32 *aMaxOccurs); 
  1365.  
  1366. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1367. #define NS_FORWARD_NSISCHEMAPARTICLE(_to) \
  1368.   NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } \
  1369.   NS_IMETHOD GetParticleType(PRUint16 *aParticleType) { return _to GetParticleType(aParticleType); } \
  1370.   NS_IMETHOD GetMinOccurs(PRUint32 *aMinOccurs) { return _to GetMinOccurs(aMinOccurs); } \
  1371.   NS_IMETHOD GetMaxOccurs(PRUint32 *aMaxOccurs) { return _to GetMaxOccurs(aMaxOccurs); } 
  1372.  
  1373. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1374. #define NS_FORWARD_SAFE_NSISCHEMAPARTICLE(_to) \
  1375.   NS_IMETHOD GetName(nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  1376.   NS_IMETHOD GetParticleType(PRUint16 *aParticleType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParticleType(aParticleType); } \
  1377.   NS_IMETHOD GetMinOccurs(PRUint32 *aMinOccurs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMinOccurs(aMinOccurs); } \
  1378.   NS_IMETHOD GetMaxOccurs(PRUint32 *aMaxOccurs) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMaxOccurs(aMaxOccurs); } 
  1379.  
  1380. #if 0
  1381. /* Use the code below as a template for the implementation class for this interface. */
  1382.  
  1383. /* Header file */
  1384. class nsSchemaParticle : public nsISchemaParticle
  1385. {
  1386. public:
  1387.   NS_DECL_ISUPPORTS
  1388.   NS_DECL_NSISCHEMAPARTICLE
  1389.  
  1390.   nsSchemaParticle();
  1391.  
  1392. private:
  1393.   ~nsSchemaParticle();
  1394.  
  1395. protected:
  1396.   /* additional members */
  1397. };
  1398.  
  1399. /* Implementation file */
  1400. NS_IMPL_ISUPPORTS1(nsSchemaParticle, nsISchemaParticle)
  1401.  
  1402. nsSchemaParticle::nsSchemaParticle()
  1403. {
  1404.   /* member initializers and constructor code */
  1405. }
  1406.  
  1407. nsSchemaParticle::~nsSchemaParticle()
  1408. {
  1409.   /* destructor code */
  1410. }
  1411.  
  1412. /* readonly attribute AString name; */
  1413. NS_IMETHODIMP nsSchemaParticle::GetName(nsAString & aName)
  1414. {
  1415.     return NS_ERROR_NOT_IMPLEMENTED;
  1416. }
  1417.  
  1418. /* readonly attribute unsigned short particleType; */
  1419. NS_IMETHODIMP nsSchemaParticle::GetParticleType(PRUint16 *aParticleType)
  1420. {
  1421.     return NS_ERROR_NOT_IMPLEMENTED;
  1422. }
  1423.  
  1424. /* readonly attribute PRUint32 minOccurs; */
  1425. NS_IMETHODIMP nsSchemaParticle::GetMinOccurs(PRUint32 *aMinOccurs)
  1426. {
  1427.     return NS_ERROR_NOT_IMPLEMENTED;
  1428. }
  1429.  
  1430. /* readonly attribute PRUint32 maxOccurs; */
  1431. NS_IMETHODIMP nsSchemaParticle::GetMaxOccurs(PRUint32 *aMaxOccurs)
  1432. {
  1433.     return NS_ERROR_NOT_IMPLEMENTED;
  1434. }
  1435.  
  1436. /* End of implementation class template. */
  1437. #endif
  1438.  
  1439.  
  1440. /* starting interface:    nsISchemaModelGroup */
  1441. #define NS_ISCHEMAMODELGROUP_IID_STR "3c14a02a-6f4e-11d5-9b46-000064657374"
  1442.  
  1443. #define NS_ISCHEMAMODELGROUP_IID \
  1444.   {0x3c14a02a, 0x6f4e, 0x11d5, \
  1445.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1446.  
  1447. class NS_NO_VTABLE nsISchemaModelGroup : public nsISchemaParticle {
  1448.  public: 
  1449.  
  1450.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAMODELGROUP_IID)
  1451.  
  1452.   enum { COMPOSITOR_ALL = 1U };
  1453.  
  1454.   enum { COMPOSITOR_SEQUENCE = 2U };
  1455.  
  1456.   enum { COMPOSITOR_CHOICE = 3U };
  1457.  
  1458.   /* readonly attribute unsigned short compositor; */
  1459.   NS_IMETHOD GetCompositor(PRUint16 *aCompositor) = 0;
  1460.  
  1461.   /* readonly attribute PRUint32 particleCount; */
  1462.   NS_IMETHOD GetParticleCount(PRUint32 *aParticleCount) = 0;
  1463.  
  1464.   /* nsISchemaParticle getParticle (in PRUint32 index); */
  1465.   NS_IMETHOD GetParticle(PRUint32 index, nsISchemaParticle **_retval) = 0;
  1466.  
  1467.   /* nsISchemaElement getElementByName (in AString name); */
  1468.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) = 0;
  1469.  
  1470. };
  1471.  
  1472. /* Use this macro when declaring classes that implement this interface. */
  1473. #define NS_DECL_NSISCHEMAMODELGROUP \
  1474.   NS_IMETHOD GetCompositor(PRUint16 *aCompositor); \
  1475.   NS_IMETHOD GetParticleCount(PRUint32 *aParticleCount); \
  1476.   NS_IMETHOD GetParticle(PRUint32 index, nsISchemaParticle **_retval); \
  1477.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval); 
  1478.  
  1479. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1480. #define NS_FORWARD_NSISCHEMAMODELGROUP(_to) \
  1481.   NS_IMETHOD GetCompositor(PRUint16 *aCompositor) { return _to GetCompositor(aCompositor); } \
  1482.   NS_IMETHOD GetParticleCount(PRUint32 *aParticleCount) { return _to GetParticleCount(aParticleCount); } \
  1483.   NS_IMETHOD GetParticle(PRUint32 index, nsISchemaParticle **_retval) { return _to GetParticle(index, _retval); } \
  1484.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) { return _to GetElementByName(name, _retval); } 
  1485.  
  1486. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1487. #define NS_FORWARD_SAFE_NSISCHEMAMODELGROUP(_to) \
  1488.   NS_IMETHOD GetCompositor(PRUint16 *aCompositor) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetCompositor(aCompositor); } \
  1489.   NS_IMETHOD GetParticleCount(PRUint32 *aParticleCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParticleCount(aParticleCount); } \
  1490.   NS_IMETHOD GetParticle(PRUint32 index, nsISchemaParticle **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetParticle(index, _retval); } \
  1491.   NS_IMETHOD GetElementByName(const nsAString & name, nsISchemaElement **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetElementByName(name, _retval); } 
  1492.  
  1493. #if 0
  1494. /* Use the code below as a template for the implementation class for this interface. */
  1495.  
  1496. /* Header file */
  1497. class nsSchemaModelGroup : public nsISchemaModelGroup
  1498. {
  1499. public:
  1500.   NS_DECL_ISUPPORTS
  1501.   NS_DECL_NSISCHEMAMODELGROUP
  1502.  
  1503.   nsSchemaModelGroup();
  1504.  
  1505. private:
  1506.   ~nsSchemaModelGroup();
  1507.  
  1508. protected:
  1509.   /* additional members */
  1510. };
  1511.  
  1512. /* Implementation file */
  1513. NS_IMPL_ISUPPORTS1(nsSchemaModelGroup, nsISchemaModelGroup)
  1514.  
  1515. nsSchemaModelGroup::nsSchemaModelGroup()
  1516. {
  1517.   /* member initializers and constructor code */
  1518. }
  1519.  
  1520. nsSchemaModelGroup::~nsSchemaModelGroup()
  1521. {
  1522.   /* destructor code */
  1523. }
  1524.  
  1525. /* readonly attribute unsigned short compositor; */
  1526. NS_IMETHODIMP nsSchemaModelGroup::GetCompositor(PRUint16 *aCompositor)
  1527. {
  1528.     return NS_ERROR_NOT_IMPLEMENTED;
  1529. }
  1530.  
  1531. /* readonly attribute PRUint32 particleCount; */
  1532. NS_IMETHODIMP nsSchemaModelGroup::GetParticleCount(PRUint32 *aParticleCount)
  1533. {
  1534.     return NS_ERROR_NOT_IMPLEMENTED;
  1535. }
  1536.  
  1537. /* nsISchemaParticle getParticle (in PRUint32 index); */
  1538. NS_IMETHODIMP nsSchemaModelGroup::GetParticle(PRUint32 index, nsISchemaParticle **_retval)
  1539. {
  1540.     return NS_ERROR_NOT_IMPLEMENTED;
  1541. }
  1542.  
  1543. /* nsISchemaElement getElementByName (in AString name); */
  1544. NS_IMETHODIMP nsSchemaModelGroup::GetElementByName(const nsAString & name, nsISchemaElement **_retval)
  1545. {
  1546.     return NS_ERROR_NOT_IMPLEMENTED;
  1547. }
  1548.  
  1549. /* End of implementation class template. */
  1550. #endif
  1551.  
  1552.  
  1553. /* starting interface:    nsISchemaAnyParticle */
  1554. #define NS_ISCHEMAANYPARTICLE_IID_STR "3c14a02b-6f4e-11d5-9b46-000064657374"
  1555.  
  1556. #define NS_ISCHEMAANYPARTICLE_IID \
  1557.   {0x3c14a02b, 0x6f4e, 0x11d5, \
  1558.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1559.  
  1560. class NS_NO_VTABLE nsISchemaAnyParticle : public nsISchemaParticle {
  1561.  public: 
  1562.  
  1563.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAANYPARTICLE_IID)
  1564.  
  1565.   enum { PROCESS_STRICT = 1U };
  1566.  
  1567.   enum { PROCESS_SKIP = 2U };
  1568.  
  1569.   enum { PROCESS_LAX = 3U };
  1570.  
  1571.   /* readonly attribute unsigned short process; */
  1572.   NS_IMETHOD GetProcess(PRUint16 *aProcess) = 0;
  1573.  
  1574.   /* readonly attribute AString namespace; */
  1575.   NS_IMETHOD GetNamespace(nsAString & aNamespace) = 0;
  1576.  
  1577. };
  1578.  
  1579. /* Use this macro when declaring classes that implement this interface. */
  1580. #define NS_DECL_NSISCHEMAANYPARTICLE \
  1581.   NS_IMETHOD GetProcess(PRUint16 *aProcess); \
  1582.   NS_IMETHOD GetNamespace(nsAString & aNamespace); 
  1583.  
  1584. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1585. #define NS_FORWARD_NSISCHEMAANYPARTICLE(_to) \
  1586.   NS_IMETHOD GetProcess(PRUint16 *aProcess) { return _to GetProcess(aProcess); } \
  1587.   NS_IMETHOD GetNamespace(nsAString & aNamespace) { return _to GetNamespace(aNamespace); } 
  1588.  
  1589. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1590. #define NS_FORWARD_SAFE_NSISCHEMAANYPARTICLE(_to) \
  1591.   NS_IMETHOD GetProcess(PRUint16 *aProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcess(aProcess); } \
  1592.   NS_IMETHOD GetNamespace(nsAString & aNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNamespace(aNamespace); } 
  1593.  
  1594. #if 0
  1595. /* Use the code below as a template for the implementation class for this interface. */
  1596.  
  1597. /* Header file */
  1598. class nsSchemaAnyParticle : public nsISchemaAnyParticle
  1599. {
  1600. public:
  1601.   NS_DECL_ISUPPORTS
  1602.   NS_DECL_NSISCHEMAANYPARTICLE
  1603.  
  1604.   nsSchemaAnyParticle();
  1605.  
  1606. private:
  1607.   ~nsSchemaAnyParticle();
  1608.  
  1609. protected:
  1610.   /* additional members */
  1611. };
  1612.  
  1613. /* Implementation file */
  1614. NS_IMPL_ISUPPORTS1(nsSchemaAnyParticle, nsISchemaAnyParticle)
  1615.  
  1616. nsSchemaAnyParticle::nsSchemaAnyParticle()
  1617. {
  1618.   /* member initializers and constructor code */
  1619. }
  1620.  
  1621. nsSchemaAnyParticle::~nsSchemaAnyParticle()
  1622. {
  1623.   /* destructor code */
  1624. }
  1625.  
  1626. /* readonly attribute unsigned short process; */
  1627. NS_IMETHODIMP nsSchemaAnyParticle::GetProcess(PRUint16 *aProcess)
  1628. {
  1629.     return NS_ERROR_NOT_IMPLEMENTED;
  1630. }
  1631.  
  1632. /* readonly attribute AString namespace; */
  1633. NS_IMETHODIMP nsSchemaAnyParticle::GetNamespace(nsAString & aNamespace)
  1634. {
  1635.     return NS_ERROR_NOT_IMPLEMENTED;
  1636. }
  1637.  
  1638. /* End of implementation class template. */
  1639. #endif
  1640.  
  1641.  
  1642. /* starting interface:    nsISchemaElement */
  1643. #define NS_ISCHEMAELEMENT_IID_STR "3c14a02c-6f4e-11d5-9b46-000064657374"
  1644.  
  1645. #define NS_ISCHEMAELEMENT_IID \
  1646.   {0x3c14a02c, 0x6f4e, 0x11d5, \
  1647.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1648.  
  1649. class NS_NO_VTABLE nsISchemaElement : public nsISchemaParticle {
  1650.  public: 
  1651.  
  1652.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAELEMENT_IID)
  1653.  
  1654.   /* readonly attribute nsISchemaType type; */
  1655.   NS_IMETHOD GetType(nsISchemaType * *aType) = 0;
  1656.  
  1657.   /* readonly attribute AString defaultValue; */
  1658.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) = 0;
  1659.  
  1660.   /* readonly attribute AString fixedValue; */
  1661.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) = 0;
  1662.  
  1663.   /* readonly attribute boolean nillable; */
  1664.   NS_IMETHOD GetNillable(PRBool *aNillable) = 0;
  1665.  
  1666.   /* readonly attribute boolean abstract; */
  1667.   NS_IMETHOD GetAbstract(PRBool *aAbstract) = 0;
  1668.  
  1669. };
  1670.  
  1671. /* Use this macro when declaring classes that implement this interface. */
  1672. #define NS_DECL_NSISCHEMAELEMENT \
  1673.   NS_IMETHOD GetType(nsISchemaType * *aType); \
  1674.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue); \
  1675.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue); \
  1676.   NS_IMETHOD GetNillable(PRBool *aNillable); \
  1677.   NS_IMETHOD GetAbstract(PRBool *aAbstract); 
  1678.  
  1679. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1680. #define NS_FORWARD_NSISCHEMAELEMENT(_to) \
  1681.   NS_IMETHOD GetType(nsISchemaType * *aType) { return _to GetType(aType); } \
  1682.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) { return _to GetDefaultValue(aDefaultValue); } \
  1683.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) { return _to GetFixedValue(aFixedValue); } \
  1684.   NS_IMETHOD GetNillable(PRBool *aNillable) { return _to GetNillable(aNillable); } \
  1685.   NS_IMETHOD GetAbstract(PRBool *aAbstract) { return _to GetAbstract(aAbstract); } 
  1686.  
  1687. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1688. #define NS_FORWARD_SAFE_NSISCHEMAELEMENT(_to) \
  1689.   NS_IMETHOD GetType(nsISchemaType * *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  1690.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultValue(aDefaultValue); } \
  1691.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFixedValue(aFixedValue); } \
  1692.   NS_IMETHOD GetNillable(PRBool *aNillable) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNillable(aNillable); } \
  1693.   NS_IMETHOD GetAbstract(PRBool *aAbstract) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAbstract(aAbstract); } 
  1694.  
  1695. #if 0
  1696. /* Use the code below as a template for the implementation class for this interface. */
  1697.  
  1698. /* Header file */
  1699. class nsSchemaElement : public nsISchemaElement
  1700. {
  1701. public:
  1702.   NS_DECL_ISUPPORTS
  1703.   NS_DECL_NSISCHEMAELEMENT
  1704.  
  1705.   nsSchemaElement();
  1706.  
  1707. private:
  1708.   ~nsSchemaElement();
  1709.  
  1710. protected:
  1711.   /* additional members */
  1712. };
  1713.  
  1714. /* Implementation file */
  1715. NS_IMPL_ISUPPORTS1(nsSchemaElement, nsISchemaElement)
  1716.  
  1717. nsSchemaElement::nsSchemaElement()
  1718. {
  1719.   /* member initializers and constructor code */
  1720. }
  1721.  
  1722. nsSchemaElement::~nsSchemaElement()
  1723. {
  1724.   /* destructor code */
  1725. }
  1726.  
  1727. /* readonly attribute nsISchemaType type; */
  1728. NS_IMETHODIMP nsSchemaElement::GetType(nsISchemaType * *aType)
  1729. {
  1730.     return NS_ERROR_NOT_IMPLEMENTED;
  1731. }
  1732.  
  1733. /* readonly attribute AString defaultValue; */
  1734. NS_IMETHODIMP nsSchemaElement::GetDefaultValue(nsAString & aDefaultValue)
  1735. {
  1736.     return NS_ERROR_NOT_IMPLEMENTED;
  1737. }
  1738.  
  1739. /* readonly attribute AString fixedValue; */
  1740. NS_IMETHODIMP nsSchemaElement::GetFixedValue(nsAString & aFixedValue)
  1741. {
  1742.     return NS_ERROR_NOT_IMPLEMENTED;
  1743. }
  1744.  
  1745. /* readonly attribute boolean nillable; */
  1746. NS_IMETHODIMP nsSchemaElement::GetNillable(PRBool *aNillable)
  1747. {
  1748.     return NS_ERROR_NOT_IMPLEMENTED;
  1749. }
  1750.  
  1751. /* readonly attribute boolean abstract; */
  1752. NS_IMETHODIMP nsSchemaElement::GetAbstract(PRBool *aAbstract)
  1753. {
  1754.     return NS_ERROR_NOT_IMPLEMENTED;
  1755. }
  1756.  
  1757. /* End of implementation class template. */
  1758. #endif
  1759.  
  1760.  
  1761. /* starting interface:    nsISchemaAttributeComponent */
  1762. #define NS_ISCHEMAATTRIBUTECOMPONENT_IID_STR "3c14a02d-6f4e-11d5-9b46-000064657374"
  1763.  
  1764. #define NS_ISCHEMAATTRIBUTECOMPONENT_IID \
  1765.   {0x3c14a02d, 0x6f4e, 0x11d5, \
  1766.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1767.  
  1768. class NS_NO_VTABLE nsISchemaAttributeComponent : public nsISchemaComponent {
  1769.  public: 
  1770.  
  1771.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAATTRIBUTECOMPONENT_IID)
  1772.  
  1773.   enum { COMPONENT_TYPE_ATTRIBUTE = 1U };
  1774.  
  1775.   enum { COMPONENT_TYPE_GROUP = 2U };
  1776.  
  1777.   enum { COMPONENT_TYPE_ANY = 3U };
  1778.  
  1779.   /* readonly attribute AString name; */
  1780.   NS_IMETHOD GetName(nsAString & aName) = 0;
  1781.  
  1782.   /* readonly attribute unsigned short componentType; */
  1783.   NS_IMETHOD GetComponentType(PRUint16 *aComponentType) = 0;
  1784.  
  1785. };
  1786.  
  1787. /* Use this macro when declaring classes that implement this interface. */
  1788. #define NS_DECL_NSISCHEMAATTRIBUTECOMPONENT \
  1789.   NS_IMETHOD GetName(nsAString & aName); \
  1790.   NS_IMETHOD GetComponentType(PRUint16 *aComponentType); 
  1791.  
  1792. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1793. #define NS_FORWARD_NSISCHEMAATTRIBUTECOMPONENT(_to) \
  1794.   NS_IMETHOD GetName(nsAString & aName) { return _to GetName(aName); } \
  1795.   NS_IMETHOD GetComponentType(PRUint16 *aComponentType) { return _to GetComponentType(aComponentType); } 
  1796.  
  1797. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1798. #define NS_FORWARD_SAFE_NSISCHEMAATTRIBUTECOMPONENT(_to) \
  1799.   NS_IMETHOD GetName(nsAString & aName) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetName(aName); } \
  1800.   NS_IMETHOD GetComponentType(PRUint16 *aComponentType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetComponentType(aComponentType); } 
  1801.  
  1802. #if 0
  1803. /* Use the code below as a template for the implementation class for this interface. */
  1804.  
  1805. /* Header file */
  1806. class nsSchemaAttributeComponent : public nsISchemaAttributeComponent
  1807. {
  1808. public:
  1809.   NS_DECL_ISUPPORTS
  1810.   NS_DECL_NSISCHEMAATTRIBUTECOMPONENT
  1811.  
  1812.   nsSchemaAttributeComponent();
  1813.  
  1814. private:
  1815.   ~nsSchemaAttributeComponent();
  1816.  
  1817. protected:
  1818.   /* additional members */
  1819. };
  1820.  
  1821. /* Implementation file */
  1822. NS_IMPL_ISUPPORTS1(nsSchemaAttributeComponent, nsISchemaAttributeComponent)
  1823.  
  1824. nsSchemaAttributeComponent::nsSchemaAttributeComponent()
  1825. {
  1826.   /* member initializers and constructor code */
  1827. }
  1828.  
  1829. nsSchemaAttributeComponent::~nsSchemaAttributeComponent()
  1830. {
  1831.   /* destructor code */
  1832. }
  1833.  
  1834. /* readonly attribute AString name; */
  1835. NS_IMETHODIMP nsSchemaAttributeComponent::GetName(nsAString & aName)
  1836. {
  1837.     return NS_ERROR_NOT_IMPLEMENTED;
  1838. }
  1839.  
  1840. /* readonly attribute unsigned short componentType; */
  1841. NS_IMETHODIMP nsSchemaAttributeComponent::GetComponentType(PRUint16 *aComponentType)
  1842. {
  1843.     return NS_ERROR_NOT_IMPLEMENTED;
  1844. }
  1845.  
  1846. /* End of implementation class template. */
  1847. #endif
  1848.  
  1849.  
  1850. /* starting interface:    nsISchemaAttribute */
  1851. #define NS_ISCHEMAATTRIBUTE_IID_STR "3c14a02e-6f4e-11d5-9b46-000064657374"
  1852.  
  1853. #define NS_ISCHEMAATTRIBUTE_IID \
  1854.   {0x3c14a02e, 0x6f4e, 0x11d5, \
  1855.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1856.  
  1857. class NS_NO_VTABLE nsISchemaAttribute : public nsISchemaAttributeComponent {
  1858.  public: 
  1859.  
  1860.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAATTRIBUTE_IID)
  1861.  
  1862.   enum { USE_OPTIONAL = 1U };
  1863.  
  1864.   enum { USE_PROHIBITED = 2U };
  1865.  
  1866.   enum { USE_REQUIRED = 3U };
  1867.  
  1868.   /* readonly attribute nsISchemaSimpleType type; */
  1869.   NS_IMETHOD GetType(nsISchemaSimpleType * *aType) = 0;
  1870.  
  1871.   /* readonly attribute AString defaultValue; */
  1872.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) = 0;
  1873.  
  1874.   /* readonly attribute AString fixedValue; */
  1875.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) = 0;
  1876.  
  1877.   /* readonly attribute unsigned short use; */
  1878.   NS_IMETHOD GetUse(PRUint16 *aUse) = 0;
  1879.  
  1880. };
  1881.  
  1882. /* Use this macro when declaring classes that implement this interface. */
  1883. #define NS_DECL_NSISCHEMAATTRIBUTE \
  1884.   NS_IMETHOD GetType(nsISchemaSimpleType * *aType); \
  1885.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue); \
  1886.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue); \
  1887.   NS_IMETHOD GetUse(PRUint16 *aUse); 
  1888.  
  1889. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1890. #define NS_FORWARD_NSISCHEMAATTRIBUTE(_to) \
  1891.   NS_IMETHOD GetType(nsISchemaSimpleType * *aType) { return _to GetType(aType); } \
  1892.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) { return _to GetDefaultValue(aDefaultValue); } \
  1893.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) { return _to GetFixedValue(aFixedValue); } \
  1894.   NS_IMETHOD GetUse(PRUint16 *aUse) { return _to GetUse(aUse); } 
  1895.  
  1896. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1897. #define NS_FORWARD_SAFE_NSISCHEMAATTRIBUTE(_to) \
  1898.   NS_IMETHOD GetType(nsISchemaSimpleType * *aType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetType(aType); } \
  1899.   NS_IMETHOD GetDefaultValue(nsAString & aDefaultValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDefaultValue(aDefaultValue); } \
  1900.   NS_IMETHOD GetFixedValue(nsAString & aFixedValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFixedValue(aFixedValue); } \
  1901.   NS_IMETHOD GetUse(PRUint16 *aUse) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUse(aUse); } 
  1902.  
  1903. #if 0
  1904. /* Use the code below as a template for the implementation class for this interface. */
  1905.  
  1906. /* Header file */
  1907. class nsSchemaAttribute : public nsISchemaAttribute
  1908. {
  1909. public:
  1910.   NS_DECL_ISUPPORTS
  1911.   NS_DECL_NSISCHEMAATTRIBUTE
  1912.  
  1913.   nsSchemaAttribute();
  1914.  
  1915. private:
  1916.   ~nsSchemaAttribute();
  1917.  
  1918. protected:
  1919.   /* additional members */
  1920. };
  1921.  
  1922. /* Implementation file */
  1923. NS_IMPL_ISUPPORTS1(nsSchemaAttribute, nsISchemaAttribute)
  1924.  
  1925. nsSchemaAttribute::nsSchemaAttribute()
  1926. {
  1927.   /* member initializers and constructor code */
  1928. }
  1929.  
  1930. nsSchemaAttribute::~nsSchemaAttribute()
  1931. {
  1932.   /* destructor code */
  1933. }
  1934.  
  1935. /* readonly attribute nsISchemaSimpleType type; */
  1936. NS_IMETHODIMP nsSchemaAttribute::GetType(nsISchemaSimpleType * *aType)
  1937. {
  1938.     return NS_ERROR_NOT_IMPLEMENTED;
  1939. }
  1940.  
  1941. /* readonly attribute AString defaultValue; */
  1942. NS_IMETHODIMP nsSchemaAttribute::GetDefaultValue(nsAString & aDefaultValue)
  1943. {
  1944.     return NS_ERROR_NOT_IMPLEMENTED;
  1945. }
  1946.  
  1947. /* readonly attribute AString fixedValue; */
  1948. NS_IMETHODIMP nsSchemaAttribute::GetFixedValue(nsAString & aFixedValue)
  1949. {
  1950.     return NS_ERROR_NOT_IMPLEMENTED;
  1951. }
  1952.  
  1953. /* readonly attribute unsigned short use; */
  1954. NS_IMETHODIMP nsSchemaAttribute::GetUse(PRUint16 *aUse)
  1955. {
  1956.     return NS_ERROR_NOT_IMPLEMENTED;
  1957. }
  1958.  
  1959. /* End of implementation class template. */
  1960. #endif
  1961.  
  1962.  
  1963. /* starting interface:    nsISchemaAttributeGroup */
  1964. #define NS_ISCHEMAATTRIBUTEGROUP_IID_STR "3c14a02f-6f4e-11d5-9b46-000064657374"
  1965.  
  1966. #define NS_ISCHEMAATTRIBUTEGROUP_IID \
  1967.   {0x3c14a02f, 0x6f4e, 0x11d5, \
  1968.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  1969.  
  1970. class NS_NO_VTABLE nsISchemaAttributeGroup : public nsISchemaAttributeComponent {
  1971.  public: 
  1972.  
  1973.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAATTRIBUTEGROUP_IID)
  1974.  
  1975.   /* readonly attribute PRUint32 attributeCount; */
  1976.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) = 0;
  1977.  
  1978.   /* nsISchemaAttributeComponent getAttributeByIndex (in PRUint32 index); */
  1979.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) = 0;
  1980.  
  1981.   /* nsISchemaAttributeComponent getAttributeByName (in AString name); */
  1982.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) = 0;
  1983.  
  1984. };
  1985.  
  1986. /* Use this macro when declaring classes that implement this interface. */
  1987. #define NS_DECL_NSISCHEMAATTRIBUTEGROUP \
  1988.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount); \
  1989.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval); \
  1990.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval); 
  1991.  
  1992. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  1993. #define NS_FORWARD_NSISCHEMAATTRIBUTEGROUP(_to) \
  1994.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return _to GetAttributeCount(aAttributeCount); } \
  1995.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) { return _to GetAttributeByIndex(index, _retval); } \
  1996.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) { return _to GetAttributeByName(name, _retval); } 
  1997.  
  1998. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  1999. #define NS_FORWARD_SAFE_NSISCHEMAATTRIBUTEGROUP(_to) \
  2000.   NS_IMETHOD GetAttributeCount(PRUint32 *aAttributeCount) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeCount(aAttributeCount); } \
  2001.   NS_IMETHOD GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByIndex(index, _retval); } \
  2002.   NS_IMETHOD GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAttributeByName(name, _retval); } 
  2003.  
  2004. #if 0
  2005. /* Use the code below as a template for the implementation class for this interface. */
  2006.  
  2007. /* Header file */
  2008. class nsSchemaAttributeGroup : public nsISchemaAttributeGroup
  2009. {
  2010. public:
  2011.   NS_DECL_ISUPPORTS
  2012.   NS_DECL_NSISCHEMAATTRIBUTEGROUP
  2013.  
  2014.   nsSchemaAttributeGroup();
  2015.  
  2016. private:
  2017.   ~nsSchemaAttributeGroup();
  2018.  
  2019. protected:
  2020.   /* additional members */
  2021. };
  2022.  
  2023. /* Implementation file */
  2024. NS_IMPL_ISUPPORTS1(nsSchemaAttributeGroup, nsISchemaAttributeGroup)
  2025.  
  2026. nsSchemaAttributeGroup::nsSchemaAttributeGroup()
  2027. {
  2028.   /* member initializers and constructor code */
  2029. }
  2030.  
  2031. nsSchemaAttributeGroup::~nsSchemaAttributeGroup()
  2032. {
  2033.   /* destructor code */
  2034. }
  2035.  
  2036. /* readonly attribute PRUint32 attributeCount; */
  2037. NS_IMETHODIMP nsSchemaAttributeGroup::GetAttributeCount(PRUint32 *aAttributeCount)
  2038. {
  2039.     return NS_ERROR_NOT_IMPLEMENTED;
  2040. }
  2041.  
  2042. /* nsISchemaAttributeComponent getAttributeByIndex (in PRUint32 index); */
  2043. NS_IMETHODIMP nsSchemaAttributeGroup::GetAttributeByIndex(PRUint32 index, nsISchemaAttributeComponent **_retval)
  2044. {
  2045.     return NS_ERROR_NOT_IMPLEMENTED;
  2046. }
  2047.  
  2048. /* nsISchemaAttributeComponent getAttributeByName (in AString name); */
  2049. NS_IMETHODIMP nsSchemaAttributeGroup::GetAttributeByName(const nsAString & name, nsISchemaAttributeComponent **_retval)
  2050. {
  2051.     return NS_ERROR_NOT_IMPLEMENTED;
  2052. }
  2053.  
  2054. /* End of implementation class template. */
  2055. #endif
  2056.  
  2057.  
  2058. /* starting interface:    nsISchemaAnyAttribute */
  2059. #define NS_ISCHEMAANYATTRIBUTE_IID_STR "3c14a030-6f4e-11d5-9b46-000064657374"
  2060.  
  2061. #define NS_ISCHEMAANYATTRIBUTE_IID \
  2062.   {0x3c14a030, 0x6f4e, 0x11d5, \
  2063.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  2064.  
  2065. class NS_NO_VTABLE nsISchemaAnyAttribute : public nsISchemaAttributeComponent {
  2066.  public: 
  2067.  
  2068.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAANYATTRIBUTE_IID)
  2069.  
  2070.   enum { PROCESS_STRICT = 1U };
  2071.  
  2072.   enum { PROCESS_SKIP = 2U };
  2073.  
  2074.   enum { PROCESS_LAX = 3U };
  2075.  
  2076.   /* readonly attribute unsigned short process; */
  2077.   NS_IMETHOD GetProcess(PRUint16 *aProcess) = 0;
  2078.  
  2079.   /* readonly attribute AString namespace; */
  2080.   NS_IMETHOD GetNamespace(nsAString & aNamespace) = 0;
  2081.  
  2082. };
  2083.  
  2084. /* Use this macro when declaring classes that implement this interface. */
  2085. #define NS_DECL_NSISCHEMAANYATTRIBUTE \
  2086.   NS_IMETHOD GetProcess(PRUint16 *aProcess); \
  2087.   NS_IMETHOD GetNamespace(nsAString & aNamespace); 
  2088.  
  2089. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  2090. #define NS_FORWARD_NSISCHEMAANYATTRIBUTE(_to) \
  2091.   NS_IMETHOD GetProcess(PRUint16 *aProcess) { return _to GetProcess(aProcess); } \
  2092.   NS_IMETHOD GetNamespace(nsAString & aNamespace) { return _to GetNamespace(aNamespace); } 
  2093.  
  2094. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  2095. #define NS_FORWARD_SAFE_NSISCHEMAANYATTRIBUTE(_to) \
  2096.   NS_IMETHOD GetProcess(PRUint16 *aProcess) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetProcess(aProcess); } \
  2097.   NS_IMETHOD GetNamespace(nsAString & aNamespace) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetNamespace(aNamespace); } 
  2098.  
  2099. #if 0
  2100. /* Use the code below as a template for the implementation class for this interface. */
  2101.  
  2102. /* Header file */
  2103. class nsSchemaAnyAttribute : public nsISchemaAnyAttribute
  2104. {
  2105. public:
  2106.   NS_DECL_ISUPPORTS
  2107.   NS_DECL_NSISCHEMAANYATTRIBUTE
  2108.  
  2109.   nsSchemaAnyAttribute();
  2110.  
  2111. private:
  2112.   ~nsSchemaAnyAttribute();
  2113.  
  2114. protected:
  2115.   /* additional members */
  2116. };
  2117.  
  2118. /* Implementation file */
  2119. NS_IMPL_ISUPPORTS1(nsSchemaAnyAttribute, nsISchemaAnyAttribute)
  2120.  
  2121. nsSchemaAnyAttribute::nsSchemaAnyAttribute()
  2122. {
  2123.   /* member initializers and constructor code */
  2124. }
  2125.  
  2126. nsSchemaAnyAttribute::~nsSchemaAnyAttribute()
  2127. {
  2128.   /* destructor code */
  2129. }
  2130.  
  2131. /* readonly attribute unsigned short process; */
  2132. NS_IMETHODIMP nsSchemaAnyAttribute::GetProcess(PRUint16 *aProcess)
  2133. {
  2134.     return NS_ERROR_NOT_IMPLEMENTED;
  2135. }
  2136.  
  2137. /* readonly attribute AString namespace; */
  2138. NS_IMETHODIMP nsSchemaAnyAttribute::GetNamespace(nsAString & aNamespace)
  2139. {
  2140.     return NS_ERROR_NOT_IMPLEMENTED;
  2141. }
  2142.  
  2143. /* End of implementation class template. */
  2144. #endif
  2145.  
  2146.  
  2147. /* starting interface:    nsISchemaFacet */
  2148. #define NS_ISCHEMAFACET_IID_STR "3c14a031-6f4e-11d5-9b46-000064657374"
  2149.  
  2150. #define NS_ISCHEMAFACET_IID \
  2151.   {0x3c14a031, 0x6f4e, 0x11d5, \
  2152.     { 0x9b, 0x46, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74 }}
  2153.  
  2154. class NS_NO_VTABLE nsISchemaFacet : public nsISchemaComponent {
  2155.  public: 
  2156.  
  2157.   NS_DEFINE_STATIC_IID_ACCESSOR(NS_ISCHEMAFACET_IID)
  2158.  
  2159.   enum { FACET_TYPE_LENGTH = 1U };
  2160.  
  2161.   enum { FACET_TYPE_MINLENGTH = 2U };
  2162.  
  2163.   enum { FACET_TYPE_MAXLENGTH = 3U };
  2164.  
  2165.   enum { FACET_TYPE_PATTERN = 4U };
  2166.  
  2167.   enum { FACET_TYPE_ENUMERATION = 5U };
  2168.  
  2169.   enum { FACET_TYPE_WHITESPACE = 6U };
  2170.  
  2171.   enum { FACET_TYPE_MAXINCLUSIVE = 7U };
  2172.  
  2173.   enum { FACET_TYPE_MININCLUSIVE = 8U };
  2174.  
  2175.   enum { FACET_TYPE_MAXEXCLUSIVE = 9U };
  2176.  
  2177.   enum { FACET_TYPE_MINEXCLUSIVE = 10U };
  2178.  
  2179.   enum { FACET_TYPE_TOTALDIGITS = 11U };
  2180.  
  2181.   enum { FACET_TYPE_FRACTIONDIGITS = 12U };
  2182.  
  2183.   enum { WHITESPACE_PRESERVE = 1U };
  2184.  
  2185.   enum { WHITESPACE_REPLACE = 1U };
  2186.  
  2187.   enum { WHITESPACE_COLLAPSE = 1U };
  2188.  
  2189.   /* readonly attribute unsigned short facetType; */
  2190.   NS_IMETHOD GetFacetType(PRUint16 *aFacetType) = 0;
  2191.  
  2192.   /* readonly attribute AString value; */
  2193.   NS_IMETHOD GetValue(nsAString & aValue) = 0;
  2194.  
  2195.   /* readonly attribute PRUint32 lengthValue; */
  2196.   NS_IMETHOD GetLengthValue(PRUint32 *aLengthValue) = 0;
  2197.  
  2198.   /* readonly attribute PRUint32 digitsValue; */
  2199.   NS_IMETHOD GetDigitsValue(PRUint32 *aDigitsValue) = 0;
  2200.  
  2201.   /* readonly attribute unsigned short whitespaceValue; */
  2202.   NS_IMETHOD GetWhitespaceValue(PRUint16 *aWhitespaceValue) = 0;
  2203.  
  2204.   /* readonly attribute boolean isfixed; */
  2205.   NS_IMETHOD GetIsfixed(PRBool *aIsfixed) = 0;
  2206.  
  2207. };
  2208.  
  2209. /* Use this macro when declaring classes that implement this interface. */
  2210. #define NS_DECL_NSISCHEMAFACET \
  2211.   NS_IMETHOD GetFacetType(PRUint16 *aFacetType); \
  2212.   NS_IMETHOD GetValue(nsAString & aValue); \
  2213.   NS_IMETHOD GetLengthValue(PRUint32 *aLengthValue); \
  2214.   NS_IMETHOD GetDigitsValue(PRUint32 *aDigitsValue); \
  2215.   NS_IMETHOD GetWhitespaceValue(PRUint16 *aWhitespaceValue); \
  2216.   NS_IMETHOD GetIsfixed(PRBool *aIsfixed); 
  2217.  
  2218. /* Use this macro to declare functions that forward the behavior of this interface to another object. */
  2219. #define NS_FORWARD_NSISCHEMAFACET(_to) \
  2220.   NS_IMETHOD GetFacetType(PRUint16 *aFacetType) { return _to GetFacetType(aFacetType); } \
  2221.   NS_IMETHOD GetValue(nsAString & aValue) { return _to GetValue(aValue); } \
  2222.   NS_IMETHOD GetLengthValue(PRUint32 *aLengthValue) { return _to GetLengthValue(aLengthValue); } \
  2223.   NS_IMETHOD GetDigitsValue(PRUint32 *aDigitsValue) { return _to GetDigitsValue(aDigitsValue); } \
  2224.   NS_IMETHOD GetWhitespaceValue(PRUint16 *aWhitespaceValue) { return _to GetWhitespaceValue(aWhitespaceValue); } \
  2225.   NS_IMETHOD GetIsfixed(PRBool *aIsfixed) { return _to GetIsfixed(aIsfixed); } 
  2226.  
  2227. /* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
  2228. #define NS_FORWARD_SAFE_NSISCHEMAFACET(_to) \
  2229.   NS_IMETHOD GetFacetType(PRUint16 *aFacetType) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetFacetType(aFacetType); } \
  2230.   NS_IMETHOD GetValue(nsAString & aValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetValue(aValue); } \
  2231.   NS_IMETHOD GetLengthValue(PRUint32 *aLengthValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetLengthValue(aLengthValue); } \
  2232.   NS_IMETHOD GetDigitsValue(PRUint32 *aDigitsValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetDigitsValue(aDigitsValue); } \
  2233.   NS_IMETHOD GetWhitespaceValue(PRUint16 *aWhitespaceValue) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetWhitespaceValue(aWhitespaceValue); } \
  2234.   NS_IMETHOD GetIsfixed(PRBool *aIsfixed) { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIsfixed(aIsfixed); } 
  2235.  
  2236. #if 0
  2237. /* Use the code below as a template for the implementation class for this interface. */
  2238.  
  2239. /* Header file */
  2240. class nsSchemaFacet : public nsISchemaFacet
  2241. {
  2242. public:
  2243.   NS_DECL_ISUPPORTS
  2244.   NS_DECL_NSISCHEMAFACET
  2245.  
  2246.   nsSchemaFacet();
  2247.  
  2248. private:
  2249.   ~nsSchemaFacet();
  2250.  
  2251. protected:
  2252.   /* additional members */
  2253. };
  2254.  
  2255. /* Implementation file */
  2256. NS_IMPL_ISUPPORTS1(nsSchemaFacet, nsISchemaFacet)
  2257.  
  2258. nsSchemaFacet::nsSchemaFacet()
  2259. {
  2260.   /* member initializers and constructor code */
  2261. }
  2262.  
  2263. nsSchemaFacet::~nsSchemaFacet()
  2264. {
  2265.   /* destructor code */
  2266. }
  2267.  
  2268. /* readonly attribute unsigned short facetType; */
  2269. NS_IMETHODIMP nsSchemaFacet::GetFacetType(PRUint16 *aFacetType)
  2270. {
  2271.     return NS_ERROR_NOT_IMPLEMENTED;
  2272. }
  2273.  
  2274. /* readonly attribute AString value; */
  2275. NS_IMETHODIMP nsSchemaFacet::GetValue(nsAString & aValue)
  2276. {
  2277.     return NS_ERROR_NOT_IMPLEMENTED;
  2278. }
  2279.  
  2280. /* readonly attribute PRUint32 lengthValue; */
  2281. NS_IMETHODIMP nsSchemaFacet::GetLengthValue(PRUint32 *aLengthValue)
  2282. {
  2283.     return NS_ERROR_NOT_IMPLEMENTED;
  2284. }
  2285.  
  2286. /* readonly attribute PRUint32 digitsValue; */
  2287. NS_IMETHODIMP nsSchemaFacet::GetDigitsValue(PRUint32 *aDigitsValue)
  2288. {
  2289.     return NS_ERROR_NOT_IMPLEMENTED;
  2290. }
  2291.  
  2292. /* readonly attribute unsigned short whitespaceValue; */
  2293. NS_IMETHODIMP nsSchemaFacet::GetWhitespaceValue(PRUint16 *aWhitespaceValue)
  2294. {
  2295.     return NS_ERROR_NOT_IMPLEMENTED;
  2296. }
  2297.  
  2298. /* readonly attribute boolean isfixed; */
  2299. NS_IMETHODIMP nsSchemaFacet::GetIsfixed(PRBool *aIsfixed)
  2300. {
  2301.     return NS_ERROR_NOT_IMPLEMENTED;
  2302. }
  2303.  
  2304. /* End of implementation class template. */
  2305. #endif
  2306.  
  2307.  
  2308. #endif /* __gen_nsISchema_h__ */
  2309.